86 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			86 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| 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 VEPROMS
 | |
| {
 | |
| 	public partial class dlgCheckedOutProcedure : Form
 | |
| 	{
 | |
| 		public dlgCheckedOutProcedure(ProcedureInfo pi, SectionInfo si, UserInfo ui)
 | |
| 		{
 | |
| 			InitializeComponent();
 | |
| 			_MyProcedureInfo = pi;
 | |
| 			_MySectionInfo = si;
 | |
| 			if (_MyProcedureInfo != null)
 | |
| 				_MyOwnerInfo = OwnerInfo.GetByItemID(pi.ItemID, CheckOutType.Procedure);
 | |
| 			else
 | |
| 				_MyOwnerInfo = OwnerInfo.GetByItemID(si.MyContent.MyEntry.DocID, CheckOutType.Document);
 | |
| 			_MySessionInfo = SessionInfo.Get(_MyOwnerInfo.SessionID);
 | |
| 			_MyUserInfo = ui;
 | |
| 		}
 | |
| 		private ProcedureInfo _MyProcedureInfo;
 | |
| 		public ProcedureInfo MyProcedureInfo
 | |
| 		{
 | |
| 			get { return _MyProcedureInfo; }
 | |
| 		}
 | |
| 		private SectionInfo _MySectionInfo;
 | |
| 		public SectionInfo MySectionInfo
 | |
| 		{
 | |
| 			get { return _MySectionInfo; }
 | |
| 		}
 | |
| 		private OwnerInfo _MyOwnerInfo;
 | |
| 		public OwnerInfo MyOwnerInfo
 | |
| 		{
 | |
| 			get { return _MyOwnerInfo; }
 | |
| 		}
 | |
| 		private SessionInfo _MySessionInfo;
 | |
| 		public SessionInfo MySessionInfo
 | |
| 		{
 | |
| 			get { return _MySessionInfo; }
 | |
| 		}
 | |
| 		private UserInfo _MyUserInfo;
 | |
| 		public UserInfo MyUserInfo
 | |
| 		{
 | |
| 			get { return _MyUserInfo; }
 | |
| 		}
 | |
| 		StringBuilder sb = new StringBuilder();
 | |
| 
 | |
| 		private void dlgCheckedOutProcedure_Load(object sender, EventArgs e)
 | |
| 		{
 | |
| 			if (MyProcedureInfo != null)
 | |
| 				sb.AppendLine(string.Format("The procedure {0} - {1}", MyProcedureInfo.DisplayNumber, MyProcedureInfo.DisplayText));
 | |
| 			else
 | |
| 				sb.AppendLine(string.Format("The document {0}", MySectionInfo.DisplayText));
 | |
| 			sb.AppendLine();
 | |
| 			sb.AppendLine(string.Format("is currently checked out by {0} starting on {1}", MySessionInfo.UserID, MyOwnerInfo.DTSStart.ToString("MM/dd/yyyy @ HH:mm:ss")));
 | |
| 			sb.AppendLine();
 | |
| 			sb.AppendLine(string.Format("in a VEPROMS session on computer {0} that was started on {1}", MySessionInfo.MachineName, MySessionInfo.DTSDtart.ToString("MM/dd/yyyy @ HH:mm:ss")));
 | |
| 			lblInfo.Text = sb.ToString();
 | |
| 			if (MyProcedureInfo != null)
 | |
| 			{
 | |
| 				// B2020-048: Only have force button visible if administrator or 'canedit' and current user is not a writer.
 | |
| 				bool writerAndOtherUserIsIn = !(MySessionInfo.UserID != MyUserInfo.UserID && MyUserInfo.IsWriter(MyProcedureInfo.MyDocVersion));
 | |
| 				bool isActiveAdministrator = MyUserInfo.IsAdministrator() || MyUserInfo.IsSetAdministrator(MyProcedureInfo.MyDocVersion);
 | |
| 				btnForce.Visible = isActiveAdministrator || (writerAndOtherUserIsIn && UserInfo.CanEdit(MyUserInfo, MyProcedureInfo.MyDocVersion));
 | |
| 			}
 | |
| 			else
 | |
| 				btnForce.Visible = MyUserInfo.IsAdministrator() || MyUserInfo.IsSetAdministrator(MySectionInfo.MyProcedure.MyDocVersion);
 | |
| 		}
 | |
| 
 | |
| 		private void btnForce_Click(object sender, EventArgs e)
 | |
| 		{
 | |
| 			MySessionInfo.CheckInItem(MyOwnerInfo.OwnerID);
 | |
| 			sb.AppendLine();
 | |
| 			sb.AppendLine("Forced Check In has been completed");
 | |
| 			lblInfo.Text = sb.ToString();
 | |
| 			btnForce.Enabled = false;
 | |
| 		}
 | |
| 
 | |
| 	}
 | |
| }
 |