private void LoadNsiFileCommandAction()
        {
            var filename = GetFilenameToLoadEvent?.Invoke();

            if (!File.Exists(filename))
            {
                return;
            }

            var nsiContent = File.ReadAllLines(filename).ToList();
            int length     = nsiContent.Count;

            for (int index = 0; index < length; index++)
            {
                nsiContent[index] = nsiContent[index].Replace("  ", " ");
                if (!nsiContent[index].EndsWith("\\"))
                {
                    continue;
                }

                var lineLength = nsiContent[index].Length;
                nsiContent[index] = nsiContent[index].Remove(lineLength - 1);
                nsiContent[index] = string.Join("", nsiContent[index], nsiContent[index + 1]).Replace("  ", " ");

                nsiContent.RemoveAt(index + 1);
                length--;
            }
            LoadFileLines = nsiContent;
            GeneralViewModel.LoadDataFromNsi(LoadFileLines);
            FilesViewModel.LoadDataFromNsi(LoadFileLines);
            RegistryViewModel.LoadDataFromNsi(LoadFileLines);
            ShortcutsViewModel.LoadDataFromNsi(LoadFileLines);
            UserVariablesViewModel.LoadDataFromNsi(LoadFileLines);
        }
        public FilesViewModel(IHoldGeneralInformation generalInformation, ShortcutsViewModel shortcutsViewModel, IHoldVariables variablesHolder)
        {
            _variablesHolder    = variablesHolder;
            _generalInformation = generalInformation;
            _shortcutsViewModel = shortcutsViewModel;

            SelectedFiles = new ObservableCollection <InstallationFile>();

            RemoveFileCommand           = new CommandAction <InstallationFile>(RemoveFileCommandAction);
            RefreshVariablesListCommand = new CommandAction(RefreshVariablesListCommandAction);
        }
        public MainWindowViewModel()
        {
            GeneralViewModel       = new GeneralViewModel();
            UserVariablesViewModel = new UserVariablesViewModel();
            ShortcutsViewModel     = new ShortcutsViewModel(UserVariablesViewModel);
            FilesViewModel         = new FilesViewModel(GeneralViewModel, ShortcutsViewModel, UserVariablesViewModel);
            RegistryViewModel      = new RegistryViewModel();
            PagesViewModel         = new PagesViewModel();
            SectionsViewModel      = new SectionsViewModel(FilesViewModel, RegistryViewModel);

            CreateNsiFileCommand = new CommandAction(CreateNsiFileCommandAction);
            LoadNsiFileCommand   = new CommandAction(LoadNsiFileCommandAction);
        }