Commit for development environment setup
This commit is contained in:
377
PROMS/SQL/display history code
Normal file
377
PROMS/SQL/display history code
Normal file
@@ -0,0 +1,377 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Data;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using VEPROMS.CSLA.Library;
|
||||
using System.IO;
|
||||
|
||||
namespace jcbTestAudits
|
||||
{
|
||||
public delegate void ItemRestoredHandler(ItemInfo restoredItemInfo);
|
||||
|
||||
public partial class DisplayHistory : UserControl
|
||||
{
|
||||
public event ItemRestoredHandler ItemRestored;
|
||||
private void OnItemRestored(ItemInfo restoredItemInfo)
|
||||
{
|
||||
if (ItemRestored != null) ItemRestored(restoredItemInfo);
|
||||
}
|
||||
|
||||
public DisplayHistory()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
private ItemInfo _MyItemInfo;
|
||||
|
||||
public ItemInfo MyItemInfo
|
||||
{
|
||||
get { return _MyItemInfo; }
|
||||
set
|
||||
{
|
||||
_MyItemInfo = value;
|
||||
UpdateHistory();
|
||||
}
|
||||
}
|
||||
|
||||
private bool _AnnotationOnly = false;
|
||||
|
||||
public bool AnnotationOnly
|
||||
{
|
||||
get { return _AnnotationOnly; }
|
||||
set
|
||||
{
|
||||
_AnnotationOnly = value;
|
||||
UpdateHistory();
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdateHistory()
|
||||
{
|
||||
#region setup
|
||||
btnRestore.Enabled = false;
|
||||
myRTB.Clear();
|
||||
myVFG.Clear();
|
||||
tvAudits.Nodes.Clear();
|
||||
if (MyItemInfo == null) return;
|
||||
MyItemInfo.RefreshItemAnnotations();
|
||||
#endregion
|
||||
//if (AnnotationOnly)
|
||||
//{
|
||||
#region annotation deleted
|
||||
//annotation deleted by itemid
|
||||
TreeNode annotationDeleted = null;
|
||||
AnnotationAuditInfoList aail = AnnotationAuditInfoList.GetByItemID(MyItemInfo.ItemID);
|
||||
foreach (AnnotationAuditInfo aai in aail)
|
||||
{
|
||||
TreeNode tn = null;
|
||||
if (aai.DeleteStatus > 0)
|
||||
{
|
||||
if (annotationDeleted == null)
|
||||
annotationDeleted = tvAudits.Nodes.Add("Deleted Annotations");
|
||||
if (tn == null)
|
||||
{
|
||||
AnnotationTypeInfo ati = AnnotationTypeInfo.Get(aai.TypeID);
|
||||
tn = annotationDeleted.Nodes.Add(ati.Name);
|
||||
}
|
||||
TreeNode cn = tn.Nodes.Add(aai.ToString());
|
||||
cn.Tag = aai;
|
||||
}
|
||||
}
|
||||
//end annotation deleted
|
||||
#endregion
|
||||
#region annotation changes
|
||||
//annotation change by annotationid
|
||||
TreeNode annotationHistory = null;
|
||||
if (MyItemInfo.ItemAnnotationCount > 0)
|
||||
{
|
||||
foreach (AnnotationInfo ai in MyItemInfo.ItemAnnotations)
|
||||
{
|
||||
TreeNode tn = null;
|
||||
aail = AnnotationAuditInfoList.GetByAnnotationID(ai.AnnotationID);
|
||||
foreach (AnnotationAuditInfo aai in aail)
|
||||
{
|
||||
if (aai.DTS != ai.DTS)
|
||||
{
|
||||
if (annotationHistory == null)
|
||||
annotationHistory = tvAudits.Nodes.Add("Annotation History");
|
||||
if (tn == null)
|
||||
tn = annotationHistory.Nodes.Add(string.Format("{0} - {1}", ai.MyAnnotationType.Name, ai.SearchText));
|
||||
TreeNode cn = tn.Nodes.Add(aai.ToString());
|
||||
cn.Tag = aai;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//end annotation change
|
||||
#endregion
|
||||
// return;
|
||||
//}
|
||||
#region content changes
|
||||
//content changes
|
||||
TreeNode contentHistory = null;
|
||||
if (MyItemInfo == null) return;
|
||||
ContentAuditInfoList cail = ContentAuditInfoList.Get(MyItemInfo.ContentID);
|
||||
ContentInfo ci = ContentInfo.Get(MyItemInfo.ContentID);
|
||||
foreach (ContentAuditInfo cai in cail)
|
||||
{
|
||||
if (cai.DeleteStatus == 0)
|
||||
{
|
||||
if (cai.DTS != ci.DTS)
|
||||
{
|
||||
if (contentHistory == null)
|
||||
contentHistory = tvAudits.Nodes.Add("Content History");
|
||||
TreeNode tn = contentHistory.Nodes.Add(cai.ToString());
|
||||
tn.Tag = cai;
|
||||
}
|
||||
}
|
||||
}
|
||||
//end content changes
|
||||
#endregion
|
||||
#region items
|
||||
TreeNode previousItem = null;
|
||||
TreeNode nextItem = null;
|
||||
TreeNode procedurePart = null;
|
||||
TreeNode sectionPart = null;
|
||||
TreeNode cautionPart = null;
|
||||
TreeNode notePart = null;
|
||||
TreeNode rnoPart = null;
|
||||
TreeNode stepPart = null;
|
||||
TreeNode tablePart = null;
|
||||
#endregion
|
||||
ItemAuditInfoList iail = ItemAuditInfoList.Get(MyItemInfo.ItemID);
|
||||
foreach (ItemAuditInfo iai in iail)
|
||||
{
|
||||
switch (iai.Level)
|
||||
{
|
||||
#region previous item
|
||||
case 0: //previous item
|
||||
{
|
||||
if (previousItem == null)
|
||||
previousItem = tvAudits.Nodes.Add("Previous Item");
|
||||
TreeNode tn = previousItem.Nodes.Add(iai.ToString());
|
||||
tn.Tag = iai;
|
||||
break;
|
||||
}
|
||||
#endregion
|
||||
#region next item
|
||||
case 1: //next item
|
||||
{
|
||||
if (nextItem == null)
|
||||
nextItem = tvAudits.Nodes.Add("Next Item");
|
||||
TreeNode tn = nextItem.Nodes.Add(iai.ToString());
|
||||
tn.Tag = iai;
|
||||
break;
|
||||
}
|
||||
#endregion
|
||||
case 2: //parts
|
||||
{
|
||||
PartAuditInfoList pail = null;
|
||||
pail = PartAuditInfoList.GetByDeleteStatus(iai.DeleteStatus);
|
||||
if (pail.Count == 0)
|
||||
pail = PartAuditInfoList.GetByItemID(iai.ItemID);
|
||||
foreach (PartAuditInfo pai in pail)
|
||||
{
|
||||
if (pai.ContentID == MyItemInfo.ContentID)
|
||||
{
|
||||
switch (pai.FromType)
|
||||
{
|
||||
#region procedure part
|
||||
case 1: //procedures
|
||||
{
|
||||
if (procedurePart == null)
|
||||
procedurePart = tvAudits.Nodes.Add("Procedures");
|
||||
TreeNode tn = procedurePart.Nodes.Add(iai.ToString());
|
||||
tn.Tag = iai;
|
||||
break;
|
||||
}
|
||||
#endregion
|
||||
#region section part
|
||||
case 2: //sections
|
||||
{
|
||||
if (sectionPart == null)
|
||||
sectionPart = tvAudits.Nodes.Add("Sections");
|
||||
TreeNode tn = sectionPart.Nodes.Add(iai.ToString());
|
||||
tn.Tag = iai;
|
||||
break;
|
||||
}
|
||||
#endregion
|
||||
#region caution part
|
||||
case 3: //cautions
|
||||
{
|
||||
if (cautionPart == null)
|
||||
cautionPart = tvAudits.Nodes.Add("Cautions");
|
||||
TreeNode tn = cautionPart.Nodes.Add(iai.ToString());
|
||||
tn.Tag = iai;
|
||||
break;
|
||||
}
|
||||
#endregion
|
||||
#region note part
|
||||
case 4: //notes
|
||||
{
|
||||
if (notePart == null)
|
||||
notePart = tvAudits.Nodes.Add("Notes");
|
||||
TreeNode tn = notePart.Nodes.Add(iai.ToString());
|
||||
tn.Tag = iai;
|
||||
break;
|
||||
}
|
||||
#endregion
|
||||
#region rno part
|
||||
case 5: //rnos
|
||||
{
|
||||
if (rnoPart == null)
|
||||
rnoPart = tvAudits.Nodes.Add("RNOs");
|
||||
TreeNode tn = rnoPart.Nodes.Add(iai.ToString());
|
||||
tn.Tag = iai;
|
||||
break;
|
||||
}
|
||||
#endregion
|
||||
#region step part
|
||||
case 6: //steps
|
||||
{
|
||||
if (stepPart == null)
|
||||
stepPart = tvAudits.Nodes.Add("Steps");
|
||||
TreeNode tn = stepPart.Nodes.Add(iai.ToString());
|
||||
tn.Tag = iai;
|
||||
break;
|
||||
}
|
||||
#endregion
|
||||
#region table part
|
||||
case 7: //tables
|
||||
{
|
||||
if (tablePart == null)
|
||||
tablePart = tvAudits.Nodes.Add("Tables");
|
||||
TreeNode tn = tablePart.Nodes.Add(iai.ToString());
|
||||
tn.Tag = iai;
|
||||
break;
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void DisplayTagRTF(TreeNode tn)
|
||||
{
|
||||
if (tn.Tag != null)
|
||||
{
|
||||
if (tn.Tag is ContentAuditInfo)
|
||||
{
|
||||
btnRestore.Enabled = true;
|
||||
myVFG.Clear();
|
||||
ContentAuditInfo cai = tn.Tag as ContentAuditInfo;
|
||||
GridAuditInfoList gail = GridAuditInfoList.Get(cai.ContentID);
|
||||
if (gail.Count > 0)
|
||||
{
|
||||
foreach (GridAuditInfo gai in gail)
|
||||
{
|
||||
if (gai.DTS == cai.DTS)
|
||||
{
|
||||
myVFG.Visible = true;
|
||||
myVFG.BringToFront();
|
||||
myRTB.Visible = false;
|
||||
using (StringReader sr = new StringReader(gai.Data))
|
||||
{
|
||||
myVFG.ReadXml(sr);
|
||||
sr.Close();
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
myRTB.Visible = true;
|
||||
myRTB.BringToFront();
|
||||
myVFG.Visible = false;
|
||||
myRTB.SetupRichText(cai.Text, MyItemInfo.FormatStepData.Font);
|
||||
}
|
||||
}
|
||||
if (tn.Tag is ItemAuditInfo)
|
||||
{
|
||||
btnRestore.Enabled = true;
|
||||
ItemAuditInfo iai = tn.Tag as ItemAuditInfo;
|
||||
ContentAuditInfoList cail = ContentAuditInfoList.Get(iai.ContentID);
|
||||
foreach (ContentAuditInfo cai in cail)
|
||||
{
|
||||
if (cai.DeleteStatus == iai.DeleteStatus)
|
||||
{
|
||||
if (MyItemInfo.FormatStepData != null)
|
||||
myRTB.SetupRichText(cai.Text, MyItemInfo.FormatStepData.Font);
|
||||
else
|
||||
myRTB.SetupRichText(cai.Text, new VE_Font("arial", 12, E_Style.None));
|
||||
}
|
||||
}
|
||||
}
|
||||
if (tn.Tag is AnnotationAuditInfo)
|
||||
{
|
||||
btnRestore.Enabled = true;
|
||||
AnnotationAuditInfo iai = tn.Tag as AnnotationAuditInfo;
|
||||
myRTB.Rtf = iai.RtfText;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
btnRestore.Enabled = false;
|
||||
myRTB.Clear();
|
||||
myVFG.Clear();
|
||||
}
|
||||
}
|
||||
|
||||
private void tvAudits_AfterSelect(object sender, TreeViewEventArgs e)
|
||||
{
|
||||
DisplayTagRTF(e.Node);
|
||||
}
|
||||
|
||||
private void btnRestore_Click(object sender, EventArgs e)
|
||||
{
|
||||
TreeNode tn = tvAudits.SelectedNode;
|
||||
if (tn.Tag is ContentAuditInfo)
|
||||
{
|
||||
ContentAuditInfo cai = tn.Tag as ContentAuditInfo;
|
||||
if (MessageBox.Show(this, "Do you want to restore this content change?", "Confirm Content Change Restore", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) == DialogResult.Yes)
|
||||
{
|
||||
//TODO: need to fix this (dataportal stuff)
|
||||
ContentInfo ci = ContentInfo.RestoreContent(cai);
|
||||
UpdateHistory();
|
||||
myRTB.Clear();
|
||||
myVFG.Clear();
|
||||
}
|
||||
}
|
||||
if (tn.Tag is ItemAuditInfo)
|
||||
{
|
||||
ItemAuditInfo iai = tn.Tag as ItemAuditInfo;
|
||||
if (MessageBox.Show(this, "Do you want to restore this item?", "Confirm Item Restore", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) == DialogResult.Yes)
|
||||
{
|
||||
ItemInfo ii = MyItemInfo.RestoreSibling(iai);
|
||||
UpdateHistory();
|
||||
myRTB.Clear();
|
||||
myVFG.Clear();
|
||||
}
|
||||
}
|
||||
if (tn.Tag is AnnotationAuditInfo)
|
||||
{
|
||||
AnnotationAuditInfo aai = tn.Tag as AnnotationAuditInfo;
|
||||
if (MessageBox.Show(this, "Do you want to restore this annotation?", "Confirm Annotation Restore", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) == DialogResult.Yes)
|
||||
{
|
||||
//TODO: need to fix this (dataportal stuff)
|
||||
AnnotationInfo ai = AnnotationInfo.RestoreAnnotation(aai);
|
||||
UpdateHistory();
|
||||
myRTB.Clear();
|
||||
myVFG.Clear();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void myVFG_Click(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user