Ejemplo n.º 1
0
        public async Task<Program> CreateEmptyProgram(string newProgramName)
        {
            // TODO: move this code into a ProjectGenerator see ProjectGeneratorWhackAMole

            var newProject = new Program
            {
                Name = newProgramName,
                UploadHeader = new UploadHeader
                {
                    MediaLicense = "http://developer.catrobat.org/ccbysa_v3",
                    ProgramLicense = "http://developer.catrobat.org/agpl_v3",
                    Url = "http://pocketcode.org/details/871"
                }
            };

            using (var storage = StorageSystem.GetStorage())
            {
                var destinationPath = Path.Combine(StorageConstants.ProgramsPath, newProgramName);

                var counter = 1;
                while (await storage.DirectoryExistsAsync(destinationPath))
                {
                    newProgramName = newProgramName + counter;
                    destinationPath = Path.Combine(StorageConstants.ProgramsPath, newProgramName);
                    counter++;
                }
            }
            await newProject.Save();

            return newProject;
        }
Ejemplo n.º 2
0
        public static async Task SaveContext(Program currentProject)
        {
            try
            {
                if (_context == null)
                    return;

                var themeChooser = ServiceLocator.ThemeChooser;
                var settingsViewModel = ServiceLocator.GetInstance<SettingsViewModel>();

                if (themeChooser.SelectedTheme != null)
                {
                    _context.LocalSettings.CurrentThemeIndex = themeChooser.SelectedThemeIndex;
                }

                if (settingsViewModel.CurrentCulture != null)
                {
                    _context.LocalSettings.CurrentLanguageString = settingsViewModel.CurrentCulture.Name;
                }

                

                if (currentProject == null)
                {
                    await ServiceLocator.TraceService.SaveLocal();
                    return;
                }
                    

                _context.LocalSettings.CurrentProgramName = currentProject.Name;
                await ServiceLocator.ContextService.StoreLocalSettings(_context.LocalSettings);
                await currentProject.Save();

                // allow viewmodels to save settings // TODO: check if this is awaited
                Messenger.Default.Send(new GenericMessage<LocalSettings>(_context.LocalSettings), ViewModelMessagingToken.SaveSettings);

                await ServiceLocator.TraceService.SaveLocal();
            }
            catch (Exception e)
            {
                throw;
            }
            //await ServiceLocator.TraceService.SaveLocal();


        }