122 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			122 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
/*********************************************************************************************
 | 
						|
 * 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>
 | 
						|
	/// 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.
 | 
						|
	/// </summary>
 | 
						|
	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++;
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 |