Skip to content

Commit 550bdee

Browse files
authored
Merge pull request #283 from microsoft/zt/280-cleanup-failed-exports
#280: Clean up files on failed export
2 parents 4627323 + c4c3312 commit 550bdee

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

AIDevGallery/Pages/Scenarios/ScenarioPage.xaml.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,7 @@ private async void ExportSampleToggle_Click(object sender, RoutedEventArgs e)
256256
}
257257

258258
ContentDialog? dialog = null;
259+
var generator = new Generator();
259260
try
260261
{
261262
var totalSize = cachedModels.Sum(cm => cm.Value.ModelSize);
@@ -280,8 +281,6 @@ private async void ExportSampleToggle_Click(object sender, RoutedEventArgs e)
280281
var folder = await picker.PickSingleFolderAsync();
281282
if (folder != null)
282283
{
283-
var generator = new Generator();
284-
285284
dialog = new ContentDialog
286285
{
287286
XamlRoot = this.XamlRoot,
@@ -327,6 +326,7 @@ private async void ExportSampleToggle_Click(object sender, RoutedEventArgs e)
327326
catch (Exception ex)
328327
{
329328
Debug.WriteLine(ex);
329+
generator.CleanUp();
330330
dialog?.Hide();
331331

332332
var message = "Please try again, or report this issue.";

AIDevGallery/ProjectGenerator/Generator.cs

+12
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ namespace AIDevGallery.ProjectGenerator;
2121
internal partial class Generator
2222
{
2323
private readonly string templatePath = Path.Join(Package.Current.InstalledLocation.Path, "ProjectGenerator", "Template");
24+
private string generatedProjectPath = string.Empty;
2425

2526
[GeneratedRegex(@"[^a-zA-Z0-9_]")]
2627
private static partial Regex SafeNameRegex();
@@ -64,6 +65,8 @@ internal async Task<string> GenerateAsync(Sample sample, Dictionary<ModelType, E
6465
dirIndexCount++;
6566
}
6667

68+
generatedProjectPath = outputPath;
69+
6770
var modelTypes = sample.Model1Types.Concat(sample.Model2Types ?? Enumerable.Empty<ModelType>())
6871
.Where(models.ContainsKey);
6972

@@ -426,4 +429,13 @@ private async Task AddFilesFromSampleAsync(
426429
await File.WriteAllTextAsync(Path.Join(outputPath, $"Sample.xaml.cs"), sample.GetCleanCSCode(modelInfos), cancellationToken);
427430
}
428431
}
432+
433+
internal void CleanUp()
434+
{
435+
if(!string.IsNullOrEmpty(generatedProjectPath) && Directory.Exists(generatedProjectPath))
436+
{
437+
Directory.Delete(generatedProjectPath, true);
438+
generatedProjectPath = string.Empty;
439+
}
440+
}
429441
}

0 commit comments

Comments
 (0)