private async Task <object> CommandSaveExecute(object obj) { if (pack.Cards.Any(c => c.Card == null || c.Card == Card.Unknown)) { ErrorMessage = "Please select 6 cards"; return(null); } ButtonSaveLabel = "Saving..."; ButtonSaveEnabled = false; ErrorMessage = null; if (settings.Packs_ScreenshotAfterAdded) { ButtonSaveLabel = "Taking screenshot..."; await Task.Factory.StartNew(() => TakePackScreenshot()); } ButtonSaveLabel = "Saving pack..."; ITracker tracker = trackerFactory.GetTracker(); Pack.DateOpened = trackerFactory.GetDateTimeNow(); tracker.Packs.Add(Pack); await Task.Factory.StartNew(() => trackerFactory.GetFileManager().SaveDatabase()); InitNewPack(); ButtonSaveLabel = "Save"; ButtonSaveEnabled = true; return(null); }