public bool SaveDesign(MgaFCO fco)
{
string designFolder = "designs";
if (Directory.Exists(designFolder) == false)
{
Directory.CreateDirectory(designFolder);
}
CyPhy.TestBenchType tb;
Func<MgaFCO, CyPhy.TestBenchType> cast;
if (TestbenchAndCompositeTypes.TryGetValue(fco.Meta.Name, out cast) == false)
{
return false;
}
tb = cast(fco);
var tlsut = tb.Children.TopLevelSystemUnderTestCollection.FirstOrDefault();
if (tlsut == null)
{
return false;
}
if (tlsut.Referred.ComponentAssembly == null)
{
return false;
}
try
{
this.infoTextWriter.WriteLine("Exporting design {0}", fco.Name);
var design = CyPhy2DesignInterchange.CyPhy2DesignInterchange.Convert(tlsut.Referred.ComponentAssembly);
design.SaveToFile(Path.GetFullPath(Path.Combine(designFolder, design.Name + ".adm")));
string designFileName = Path.Combine(".", designFolder, design.Name + ".adm").Replace('\\', '/');
if (this.Project.Configurations.Contains(designFileName) == false)
{
this.Project.Configurations.Add(designFileName);
}
return true;
}
catch (Exception ex)
{
this.errorTextWriter.WriteLine("Exception in CyPhy2DesignInterchange: {0}", ex);
return false;
}
}