virtual public async void Save(PomodoroTimerSetting setting)
        {
            StorageFile file = await Windows.Storage.ApplicationData.Current.LocalFolder.CreateFileAsync(filename, CreationCollisionOption.ReplaceExisting);

            using (var stream = await file.OpenStreamForWriteAsync())
            {
                XmlSerializer serializer = new XmlSerializer(typeof(PomodoroTimerSetting));
                serializer.Serialize(stream, setting);
            }
        }
        public MainContainer()
        {
            pomodoroTimerModelSetting = new PomodoroTimerSetting();
            pomodoroModelTimer = new PomodoroTimer(pomodoroTimerModelSetting);

            PomodoroTimerSettings = new PomodoroViewModelTimerSettings(pomodoroTimerModelSetting);
            PomodoroTimer = new PomodoroViewModelTimer(pomodoroModelTimer);

            ViewModelCommand command = new ViewModelCommand(PomodoroTimer, "IsStopped");
            command.Predicate = o => PomodoroTimer.IsStopped;
            command.Action = o => loaderSaver.Save(pomodoroTimerModelSetting);
            SaveSettingCommand = command;
        }
        /// <summary>
        /// Создать таймер для помодоро
        /// </summary>
        /// <param name="setting">Найстройки для таймера</param>
        public PomodoroTimer(PomodoroTimerSetting setting)
        {
            Setting = setting ?? new PomodoroTimerSetting();

            CurrentPeriod = 1;

            timer = new DispatcherTimer();
            timer.Tick += timer_Tick;
            timer.Interval = TimeSpan.FromSeconds(1);

            PlayState = new PlayState(this);
            StopState = new StopState(this);
            PauseState = new PauseState(this);

            Updated += (o, e) => { };   // Делаем пустой обработчик что бы не проверять на null

            GoToState(StopState);
        }
        virtual public PomodoroTimerSetting Load()
        {
            StorageFolder local = Windows.Storage.ApplicationData.Current.LocalFolder;

            Stream stream = null;
            PomodoroTimerSetting setting;
            try
            {

               stream = local.OpenStreamForReadAsync(filename).Result;

               using (StreamReader reader = new StreamReader(stream))
               {
                   XmlSerializer serializer = new XmlSerializer(typeof(PomodoroTimerSetting));
                   setting = (PomodoroTimerSetting)serializer.Deserialize(reader);
               }
            }
            catch (IOException exception)
            {
                setting = new PomodoroTimerSetting();
            }
            return setting;
        }
 public PomodoroViewModelTimerSettings(PomodoroTimerSetting pomodoroTimerModelSetting)
 {
     this.pomodoroTimerModelSetting = pomodoroTimerModelSetting;
 }