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