using System.Collections.Generic;
public abstract class Report
protected const string BaseUrl = "https://riscs.nasa.gov/RSAarcher";
protected static readonly string BaseSearch = $"{BaseUrl}/SearchContent/Search.aspx";
protected readonly Dictionary<Enum, int> moduleMap = new Dictionary<Enum, int>()
{{ModuleType.RBD, 83}, {ModuleType.Findings, 167}, {ModuleType.POAM, 259}, {ModuleType.AP, 469}, {ModuleType.Hardware, 718}, };
public abstract ModuleType Type
public virtual Uri GetUri()
var sb = new StringBuilder(BaseSearch);
sb.Append("?view=Report");
sb.Append("&moduleId=").Append(moduleMap[Type]);
sb.Append("&reportId=").Append(Id);
return new Uri(sb.ToString());
public class StakeholdersReport : Report
public override ModuleType Type
public class RbdRandomReport : Report
public override ModuleType Type