Commit for development environment setup
This commit is contained in:
115
PROMS/VEPROMS.CSLA.Library/Extension/LinkText.cs
Normal file
115
PROMS/VEPROMS.CSLA.Library/Extension/LinkText.cs
Normal file
@@ -0,0 +1,115 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
namespace VEPROMS.CSLA.Library
|
||||
{
|
||||
public partial class LinkText
|
||||
{
|
||||
public LinkText(string linkInfoText)
|
||||
{
|
||||
_LinkInfoText = linkInfoText;
|
||||
}
|
||||
public void ParseLink()
|
||||
{
|
||||
if (_MyParsedLinkType == ParsedLinkType.NotParsed)
|
||||
{
|
||||
if (_LinkInfoText == null) return;
|
||||
// First parse the string
|
||||
_LinkInfoText = _LinkInfoText.Replace(@"\v ", "");
|
||||
// for tran : "2, #, #, # and 4#Link:TransitionRange:2 10 173 166"
|
||||
Match m = Regex.Match(_LinkInfoText, @"(.*)[#]Link:([A-Za-z]*):(.*)");
|
||||
_MyValue = m.Groups[1].Value;
|
||||
_MyLink = "#Link:" + m.Groups[2].Value + ":" + m.Groups[3].Value;
|
||||
switch (m.Groups[2].Value)
|
||||
{
|
||||
case "ReferencedObject":
|
||||
_MyParsedLinkType = ParsedLinkType.ReferencedObject;
|
||||
string[] subs = m.Groups[3].Value.Split(" ".ToCharArray());
|
||||
if (subs[0] == "<NewID>")
|
||||
_MyRoUsageInfo = null;
|
||||
else
|
||||
{
|
||||
int roUsageid = Convert.ToInt32(subs[0]);
|
||||
_MyRoUsageInfo = RoUsageInfo.Get(roUsageid);
|
||||
}
|
||||
break;
|
||||
case "Transition":
|
||||
case "TransitionRange":
|
||||
_MyParsedLinkType = (ParsedLinkType)Enum.Parse(_MyParsedLinkType.GetType(), m.Groups[2].Value);
|
||||
if (m.Groups[3].Value.Split(" ".ToCharArray())[1] == "<NewID>")
|
||||
_MyTransitionInfo = null;
|
||||
else
|
||||
{
|
||||
int transitionID = Convert.ToInt32(m.Groups[3].Value.Split(" ".ToCharArray())[1]);
|
||||
_MyTransitionInfo = TransitionInfo.Get(transitionID);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
private string _LinkInfoText;
|
||||
public string LinkInfoText
|
||||
{
|
||||
get { return _LinkInfoText; }
|
||||
}
|
||||
private TransitionInfo _MyTransitionInfo = null;
|
||||
public TransitionInfo MyTransitionInfo
|
||||
{
|
||||
get { ParseLink(); return _MyTransitionInfo; }
|
||||
}
|
||||
public ItemInfo MyTranToItemInfo
|
||||
{
|
||||
get { ParseLink(); return _MyTransitionInfo.MyItemToID; }
|
||||
}
|
||||
public ItemInfo MyTranRangeItemInfo
|
||||
{
|
||||
get { ParseLink(); return _MyTransitionInfo.MyItemRangeID; }
|
||||
}
|
||||
private string _MyValue = null;
|
||||
public string MyValue
|
||||
{
|
||||
get { ParseLink(); return _MyValue; }
|
||||
}
|
||||
private string _MyLink = null;
|
||||
public string MyLink
|
||||
{
|
||||
get { ParseLink(); return _MyLink; }
|
||||
}
|
||||
private RoUsageInfo _MyRoUsageInfo;
|
||||
public RoUsageInfo MyRoUsageInfo
|
||||
{
|
||||
get { ParseLink(); return _MyRoUsageInfo; }
|
||||
}
|
||||
//private string _Roid = null; // TODO: need to return Referenced Object rather than just roid
|
||||
//public string Roid
|
||||
//{
|
||||
// get { ParseLink(); return _Roid; }
|
||||
//}
|
||||
//private string _RoUsageid = null; // TODO: need to return Referenced Object rather than just roid
|
||||
//public string RoUsageid
|
||||
//{
|
||||
// get { ParseLink(); return _RoUsageid; }
|
||||
//}
|
||||
//private string _RoDbid = null; // TODO: need to return Referenced Object rather than just roid
|
||||
//public string RoDbid
|
||||
//{
|
||||
// get { ParseLink(); return _RoDbid; }
|
||||
//}
|
||||
private ParsedLinkType _MyParsedLinkType = ParsedLinkType.NotParsed;
|
||||
public ParsedLinkType MyParsedLinkType
|
||||
{
|
||||
get { ParseLink(); return _MyParsedLinkType; }
|
||||
}
|
||||
|
||||
}
|
||||
#region enums
|
||||
public enum ParsedLinkType : int
|
||||
{
|
||||
NotParsed = 0,
|
||||
Transition = 1,
|
||||
TransitionRange = 2,
|
||||
ReferencedObject = 3
|
||||
}
|
||||
#endregion
|
||||
}
|
Reference in New Issue
Block a user