/// <summary>
        /// Creates a new instance of <see cref="VisualDropStartScreen"/>.
        /// </summary>
        /// <param name="openProjectCommandFactory">A factory that provides an instance of <see cref="OpenProjectCommand"/>.</param>
        /// <param name="newProjectCommandFactory">A factory that provides an instance of <see cref="NewProjectCommand"/>.</param>
        public VisualDropStartScreen(
            Func <OpenProjectCommand> openProjectCommandFactory,
            Func <OpenTemplateCommand> openTemplateCommandFactory,
            Func <NewProjectCommand> newProjectCommandFactory)
        {
            _openProjectCommand  = openProjectCommandFactory();
            _openTemplateCommand = openTemplateCommandFactory();
            _newProjectCommand   = newProjectCommandFactory();
            PopulateTargetSpectrumValues();

            for (int i = 0; i < _targetSpectrumLogoValues.Count; i++)
            {
                SpectrumLogoValues.Add(_targetSpectrumLogoValues[i]);
            }

            GenerateAnimationFrames();
        }
        public VisualDropStartScreenViewModel(Func <IProjectFileService> projectFileServiceFactory)
        {
            _projectFileService = projectFileServiceFactory.Invoke();
            _projectFileService.ProjectSaved += ProjectSavedHandler;
            PopulateTargetSpectrumValues();

            for (int i = 0; i < _targetSpectrumLogoValues.Count; i++)
            {
                SpectrumLogoValues.Add(_targetSpectrumLogoValues[i]);
            }

            GenerateAnimationFrames();

            RecentProject1 = Properties.Settings.Default.RecentProject1;
            RecentProject2 = Properties.Settings.Default.RecentProject2;
            RecentProject3 = Properties.Settings.Default.RecentProject3;
            RecentProject1 = string.IsNullOrWhiteSpace(RecentProject1) ? "Recent #1" : RecentProject1;
            RecentProject2 = string.IsNullOrWhiteSpace(RecentProject2) ? "Recent #2" : RecentProject2;
            RecentProject3 = string.IsNullOrWhiteSpace(RecentProject3) ? "Recent #3" : RecentProject3;
            UpdateRecentProjects(string.Empty);
        }