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++;
|
|
}
|
|
}
|
|
}
|