コード例 #1
0
ファイル: UIQuickSignumViewModel.cs プロジェクト: 2m0nd/qsign
        void SignAllSelectedFiles()
        {
            _nowSign = true;
            var errors = new List <string>();

            foreach (var file in FilesForSign.Where(f => f.CanSign))
            {
                try
                {
                    var fileAsArray = file.GetFileAsByteArray();
                    var signAsArray = _quickSignum.Sign(fileAsArray);
                    file.SaveSignature(signAsArray);
                }
                catch (Exception exception)
                {
                    errors.Add(string.Format("При обработке файла: {0}\nвозникла следующая ошибка '{1}'", file.FilePath, exception.Message));
                }
            }
            if (errors.Count == 0)
            {
                App.Current.Dispatcher.Invoke(
                    new Action(() =>
                               MessageBox.Show(App.Current.MainWindow, String.Format("Все файлы успешно подписаны"))));
            }
            else
            {
                App.Current.Dispatcher.Invoke(
                    new Action(() =>
                               MessageBox.Show(App.Current.MainWindow, String.Format("Успешно подписано {0} файлов, возникло ошибок {1}, ошибки: {2}", FilesForSign.Count - errors.Count,
                                                                                     errors.Count, errors.Aggregate((s, s1) => s + "\n\n" + s1)))));
            }
            _nowSign = false;
        }
コード例 #2
0
ファイル: UIQuickSignumViewModel.cs プロジェクト: 2m0nd/qsign
        void VerifyAllSignatures()
        {
            _nowVerify = true;

            var errors   = new List <string>();
            int signend  = 0;
            int unsigned = 0;

            foreach (var file in FilesForSign.Where(f => f.CanSign))
            {
                try
                {
                    var signatureArray = file.GetSignatureAsByteArray();
                    if (signatureArray == null)
                    {
                        file.IsSign = false;
                        unsigned++;
                        continue;
                    }

                    var sourceArray = file.GetFileAsByteArray();
                    file.IsSign = _quickSignum.Verify(sourceArray, signatureArray);
                    if (file.IsSign)
                    {
                        signend++;
                    }
                    else
                    {
                        unsigned++;
                    }
                }
                catch (Exception exception)
                {
                    errors.Add(string.Format("При обработке файла: {0}\nвозникла следующая ошибка '{1}'", file.FilePath, exception.Message));
                }
            }
            if (errors.Count == 0)
            {
                App.Current.Dispatcher.Invoke(
                    new Action(() =>
                               MessageBox.Show(App.Current.MainWindow, String.Format("Все подписи успешно проверены, подписано {0} файлов, без подписи {1} файлов", signend, unsigned))));
            }
            else
            {
                App.Current.Dispatcher.Invoke(
                    new Action(() =>
                               MessageBox.Show(App.Current.MainWindow, String.Format("Подписано {0} файлов, не подписано {1}, возникло ошибок {2}, ошибки: {3}", signend, unsigned,
                                                                                     errors.Count, errors.Aggregate((s, s1) => "\n" + s + "\n\n" + s1)))));
            }

            _nowVerify = false;
        }
コード例 #3
0
ファイル: UIQuickSignumViewModel.cs プロジェクト: 2m0nd/qsign
        private void SaveConfigs()
        {
            var r = new List <string>();

            Settings.Default.CertSerialNumber  = SelectedCertificate;
            Settings.Default.LastDirectoryPath = CurrentDirectory;
            Settings.Default.OpenedFiles       = new OpenedFiles()
            {
                FilePathes = FilesForSign.Select(sign => sign.SourceFilePath).Distinct().ToList()
            };
            Settings.Default.SignInZip = SignInZip;
            Settings.Default.Save();
        }
コード例 #4
0
ファイル: UIQuickSignumViewModel.cs プロジェクト: 2m0nd/qsign
 private void DeselectAllExecuteCommand()
 {
     FilesForSign.ForEach(f => f.CanSign = false);
 }
コード例 #5
0
ファイル: UIQuickSignumViewModel.cs プロジェクト: 2m0nd/qsign
 private void SelectAllExecuteCommand()
 {
     FilesForSign.ForEach(f => f.CanSign = true);
 }
コード例 #6
0
ファイル: UIQuickSignumViewModel.cs プロジェクト: 2m0nd/qsign
 private void UnCanSignAllThisExtensionExecuteCommand()
 {
     FilesForSign.Where(f => f.Extension.Equals(SelectedFileForSign.Extension))
     .ToList()
     .ForEach(f => f.CanSign = false);
 }