public bool SaveDesign(CyPhy.DesignEntity designEntity)
{
if (designEntity == null)
{
throw new ArgumentNullException("designEntity");
}
string outputFolder = "design-exporter-output";
if (designEntity is CyPhy.DesignContainer)
{
outputFolder = this.GetDesignSpacesFolder();
}
else if (designEntity is CyPhy.ComponentAssembly)
{
outputFolder = this.GetDesignsFolder();
}
try
{
this.infoTextWriter.WriteLine("Exporting design {0}", designEntity.Name);
var design = CyPhy2DesignInterchange.CyPhy2DesignInterchange.Convert(designEntity);
//design.SaveToFile(Path.GetFullPath(Path.Combine(outputFolder, design.Name + ".adm")));
XSD2CSharp.AvmXmlSerializer.SaveToFile(Path.GetFullPath(Path.Combine(outputFolder, design.Name + ".adm")), design);
string designFileName = Path.Combine(".", Path.GetFileName(outputFolder), design.Name + ".adm").Replace('\\', '/');
if (designEntity is CyPhy.DesignContainer)
{
if (this.Project.DesignSpaceModels.Contains(designFileName) == false)
{
this.Project.DesignSpaceModels.Add(designFileName);
}
}
else if (designEntity is CyPhy.ComponentAssembly)
{
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;
}
}