550 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			550 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| /*********************************************************************************************
 | |
|  * 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
 | |
| {
 | |
| 	/// <summary>
 | |
| 	/// 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
 | |
| 	/// </summary>
 | |
| 	
 | |
| 
 | |
| 	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;
 | |
| 		/// <summary>
 | |
| 		/// Required designer variable.
 | |
| 		/// </summary>
 | |
| 		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;
 | |
| 		}
 | |
| 
 | |
| 		/// <summary>
 | |
| 		/// Clean up any resources being used.
 | |
| 		/// </summary>
 | |
| 		protected override void Dispose( bool disposing )
 | |
| 		{
 | |
| 			if( disposing )
 | |
| 			{
 | |
| 				if(components != null)
 | |
| 				{
 | |
| 					components.Dispose();
 | |
| 				}
 | |
| 			}
 | |
| 			base.Dispose( disposing );
 | |
| 		}
 | |
| 
 | |
| 		#region Windows Form Designer generated code
 | |
| 		/// <summary>
 | |
| 		/// Required method for Designer support - do not modify
 | |
| 		/// the contents of this method with the code editor.
 | |
| 		/// </summary>
 | |
| 		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<SelectedFilesToArchive.Count; j++)
 | |
| 				{
 | |
| 					string tstr = SelectedFilesToArchive[j];
 | |
| 					tmpstr.Append(strZipPath);
 | |
| 					tmpstr.Append(tstr);
 | |
| 					tmpstr.Append(".*\" ");
 | |
| 				}
 | |
| 				// add needed supporing files
 | |
| 				tmpstr.Append(strZipPath);
 | |
| 				tmpstr.Append("SET*.*\" ");
 | |
| 				tmpstr.Append(strZipPath);
 | |
| 				tmpstr.Append("PROC.INI\" ");
 | |
| 				tmpstr.Append(strZipPath);
 | |
| 				tmpstr.Append("CURSET.DAT\" ");
 | |
| 				tmpstr.Append(strZipPath);
 | |
| 				tmpstr.Append("USA*.*\" ");
 | |
| 				tmpstr.Append(strZipPath);
 | |
| 				tmpstr.Append("TRAN*.*\" ");
 | |
| 				tmpstr.Append(strZipPath);
 | |
| 				tmpstr.Append("XT*.*\" ");
 | |
| 				tmpstr.Append(strZipPath);
 | |
| 				tmpstr.Append("DOC_*.LIB\" ");
 | |
| 				tmpstr.Append(strZipPath);
 | |
| 				tmpstr.Append("RO.FST\" ");
 | |
| 				tmpstr.Append(strZipPath);
 | |
| 				tmpstr.Append("TITLE\" ");
 | |
| 				tmpstr.Append(strZipPath);
 | |
| 				tmpstr.Append("*.LNK\" ");
 | |
| 				tmpstr.Append(strZipPath);
 | |
| 				tmpstr.Append("RTFFILES\\*.*\" ");
 | |
| 				tmpstr.Append(strZipPath);
 | |
| 				tmpstr.Append("TEMPS\\*.*\"");
 | |
| 
 | |
| 				strFilesToArchive = tmpstr.ToString();
 | |
| 				if (SelectedFilesToArchive.Count > 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;
 | |
| 		}
 | |
| 
 | |
| 	}
 | |
| }
 |