public async Task SaveAsync(ApplicationDatabase applicationDatabase)
{
EnsureAllBucketsUsedAreInBucketRepo();
var messages = new StringBuilder();
if (Budgets.Validate(messages))
{
await this.budgetRepository.SaveAsync(applicationDatabase.FullPath(applicationDatabase.BudgetCollectionStorageKey), applicationDatabase.IsEncrypted);
var savedHandler = Saved;
savedHandler?.Invoke(this, EventArgs.Empty);
return;
}
this.logger.LogWarning(l => l.Format("BudgetMaintenanceService.Save: unable to save due to validation errors:\n{0}", messages));
throw new ValidationWarningException("Unable to save Budget:\n" + messages);
}