private static string FormatField(DocProject docProject, string content /*deprecate*/, string fieldname, string fieldtype/*deprecate*/, string fieldvalue/*deprecate*/)
{
DocDefinition docDef = docProject.GetDefinition(fieldname);
// hyperlink to enumerators
if (docDef is DocEnumeration)
{
// hyperlink to enumeration definition
// replace it with hyperlink
DocSchema docSchema = docProject.GetSchemaOfDefinition(docDef);
string relative = @"../../";
string hyperlink = relative + docSchema.Name.ToLower() + @"/lexical/" + docDef.Name.ToLower() + ".htm";
string format = "<a href=\"" + hyperlink + "\">" + fieldvalue + "</a>";
return format;// content.Replace(fieldname, format);
}
else if (docDef is DocEntity || docDef is DocType)//fieldvalue != null && fieldvalue.StartsWith("Ifc") && docProject.GetDefinition(fieldvalue) != null)
{
// replace it with hyperlink
DocSchema docSchema = docProject.GetSchemaOfDefinition(docDef);
string relative = @"../../";
string hyperlink = relative + docSchema.Name.ToLower() + @"/lexical/" + docDef.Name.ToLower() + ".htm";
string format = "<a href=\"" + hyperlink + "\">" + fieldvalue + "</a>";
return format;// content.Replace(fieldname, format);
}
else //if (docDef == null)
{
// hyperlink to property set definition
DocSchema docSchema = null;
DocObject docObj = docProject.FindPropertySet(fieldvalue, out docSchema);
if (docObj is DocPropertySet)
{
string relative = @"../../";
string hyperlink = relative + docSchema.Name.ToLowerInvariant() + @"/pset/" + docObj.Name.ToLower() + ".htm"; // case-sensitive on linux -- need to make schema all lowercase
string format = "<a href=\"" + hyperlink + "\">" + fieldvalue + "</a>";
return format;// content.Replace(fieldname, format);
}
else
{
docObj = docProject.FindPropertyEnumeration(fieldvalue, out docSchema);
if(docObj is DocPropertyEnumeration)
{
string relative = @"../../";
string hyperlink = relative + docSchema.Name.ToLowerInvariant() + @"/pset/" + docObj.Name.ToLower() + ".htm"; // case-sensitive on linux -- need to make schema all lowercase
string format = "<a href=\"" + hyperlink + "\">" + fieldvalue + "</a>";
return format;// content.Replace(fieldname, format);
}
else
{
docObj = docProject.FindQuantitySet(fieldvalue, out docSchema);
if (docObj is DocQuantitySet)
{
string relative = @"../../";
string hyperlink = relative + docSchema.Name.ToLowerInvariant() + @"/qset/" + docObj.Name.ToLower() + ".htm"; // case-sentive on linux -- need to make schema all lowercase
string format = "<a href=\"" + hyperlink + "\">" + fieldvalue + "</a>";
return format;// content.Replace(fieldname, format);
}
}
}
if (docObj == null)
{
// simple replace -- hyperlink may markup value later
return fieldvalue;// content.Replace(fieldname, fieldvalue);
}
}
/*
else
{
// simple replace -- hyperlink may markup value later
return content.Replace(fieldname, fieldvalue);
}*/
return content;
}