public async Task <ResultSingle <AppBackup> > BackupAppAsync(AppBackup appBackup = null, bool doCache = false, bool throwIfError = true) { AppBackup theBackup = appBackup == null ? _editBackup : appBackup; theBackup.OwnedBy = _editApp.Deployment; ResultSingle <AppBackup> result = await ResultSingleUI <AppBackup> .WaitForObjectAsync( throwIfError, theBackup, new CachedHttpRequest <AppBackup, ResultSingle <AppBackup> >( Backend.CreateAsync), doCache); if (result.Code >= 0) { _editBackup = result.Data.Payload; if (appBackup != null) { _editBackup.CopyTo(appBackup); } foreach (AppBackup backup in _backups) { if (backup.Id == _editBackup.Id) { _editBackup.CopyTo(backup); break; } } } return(result); }