Skip to content

Commit

Permalink
* save as local file
Browse files Browse the repository at this point in the history
  • Loading branch information
festo-i40 committed Dec 25, 2024
1 parent 962bf0b commit ef938db
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 4 deletions.
2 changes: 1 addition & 1 deletion src/AasxCsharpLibrary/AdminShellPackageEnvBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -257,7 +257,7 @@ public enum SerializationFormat { None, Xml, Json };

public AdminShellPackageEnvBase() { }

public AdminShellPackageEnvBase(AasCore.Aas3_0.Environment env)
public AdminShellPackageEnvBase(AasCore.Aas3_0.IEnvironment env)
{
if (env != null)
_aasEnv = env;
Expand Down
2 changes: 1 addition & 1 deletion src/AasxCsharpLibrary/AdminShellPackageFileBasedEnv.cs
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ public class AdminShellPackageFileBasedEnv : AdminShellPackageEnvBase

public AdminShellPackageFileBasedEnv() : base() { }

public AdminShellPackageFileBasedEnv(AasCore.Aas3_0.Environment env) : base(env) { }
public AdminShellPackageFileBasedEnv(AasCore.Aas3_0.IEnvironment env) : base(env) { }

public AdminShellPackageFileBasedEnv(string fn, bool indirectLoadSave = false) : base()
{
Expand Down
21 changes: 19 additions & 2 deletions src/AasxPackageLogic/MainWindowAnyUiDialogs.cs
Original file line number Diff line number Diff line change
Expand Up @@ -220,6 +220,7 @@ public async Task CommandBinding_GeneralDispatchAnyUiDialogs(

// shall be a local/ user file?!
var proposeFn = PackageCentral.MainItem.Filename;
var forceLocal = false;
var isLocalFile = PackageCentral.MainItem.Container is PackageContainerLocalFile;
var isUserFile = PackageCentral.MainItem.Container is PackageContainerUserFile;
if (!isLocalFile && !isUserFile)
Expand All @@ -233,6 +234,7 @@ public async Task CommandBinding_GeneralDispatchAnyUiDialogs(

// point to local directory
proposeFn = System.IO.Path.GetFileName(proposeFn);
forceLocal = true;
}

// filename
Expand All @@ -248,6 +250,9 @@ public async Task CommandBinding_GeneralDispatchAnyUiDialogs(
if (ucsf?.Result != true)
return;

// make sure target filename has an extension
var targetFn = ucsf.TargetFileName;

// do
try
{
Expand All @@ -260,8 +265,20 @@ public async Task CommandBinding_GeneralDispatchAnyUiDialogs(

// save
DisplayContextPlus.RememberForInitialDirectory(ucsf.TargetFileName);
await PackageCentral.MainItem.SaveAsAsync(ucsf.TargetFileName, prefFmt: prefFmt,
doNotRememberLocation: ucsf.Location != AnyUiDialogueDataSaveFile.LocationKind.Local);

if (!forceLocal)
{
// leave it where it is
await PackageCentral.MainItem.SaveAsAsync(targetFn, prefFmt: prefFmt,
doNotRememberLocation: ucsf.Location != AnyUiDialogueDataSaveFile.LocationKind.Local);
}
else
{
// make a temporary new file base environment
var fbEnv = new AdminShellPackageFileBasedEnv(PackageCentral.Main?.AasEnv);
fbEnv.SaveAs(targetFn, writeFreshly: true, prefFmt: prefFmt, saveOnlyCopy: true);
fbEnv.Close();
}

// backup (only for AASX)
if (ucsf.FilterIndex == 0)
Expand Down

0 comments on commit ef938db

Please sign in to comment.