private async void SaveAction() { string validName = await ServiceLocator.ContextService.ConvertToValidFileName(SoundName); List <string> nameList = new List <string>(); foreach (var soundItem in _receivedSelectedSprite.Sounds) { nameList.Add(soundItem.Name); } SoundName = await ServiceLocator.ContextService.FindUniqueName(validName, nameList); var sound = new Sound(SoundName); var path = Path.Combine(CurrentProgram.BasePath, StorageConstants.ProgramSoundsPath, SoundName); using (var storage = StorageSystem.GetStorage()) { using (var stream = await storage.OpenFileAsync(path, StorageFileMode.Create, StorageFileAccess.Write)) { if (SoundStream != null) { await SoundStream.CopyToAsync(stream); } else { if (Debugger.IsAttached) { Debugger.Break(); } // TODO: Show error message } } } ServiceLocator.DispatcherService.RunOnMainThread(() => { _receivedSelectedSprite.Sounds.Add(sound); ServiceLocator.NavigationService.RemoveBackEntry(); ServiceLocator.NavigationService.NavigateBack(this.GetType()); }); }