/// <summary>
        /// Create a <see cref="VsDataGridHierarchialData"/>
        /// </summary>
        /// <param name="dataManager"><see cref="VsDataGridHierarchialData"/></param>
        /// <param name="fileName">file name</param>
        /// <param name="enabled">Hash calculation is enabled</param>
        public void CreateHierachialDataObject(VsDataGridHierarchialData dataManager, string fileName, params bool[] enabled)
        {
            var fileContainer = new WinMdChecksumData
            {
                FileName = fileName
            };

            var model = new VsDataGridHierarchialDataModel
            {
                DataManager = dataManager,
                Data        = fileContainer,
                IsVisible   = true
            };

            model.AddChild(CreateChildModel(HashNames.Md5, enabled.Length == 0 ? CurrentSettings.Md5IsEnabled : enabled[0]));
            model.AddChild(CreateChildModel(HashNames.Sha1, enabled.Length == 0 ? CurrentSettings.Sha1IsEnabled : enabled[1]));
            model.AddChild(CreateChildModel(HashNames.Sha256, enabled.Length == 0 ? CurrentSettings.Sha256IsEnabled : enabled[2]));
            model.AddChild(CreateChildModel(HashNames.Sha384, enabled.Length == 0 ? CurrentSettings.Sha384IsEnabled : enabled[3]));
            model.AddChild(CreateChildModel(HashNames.Sha512, enabled.Length == 0 ? CurrentSettings.Sha512IsEnabled : enabled[4]));

            dataManager.RowData.Add(model);
            dataManager.Initialize();

            dataManager.First().IsExpanded = true;
        }
Exemple #2
0
        /// <summary>
        /// Standard constructor
        /// </summary>
        public MainWindowViewModel()
        {
            // Set XAML language culture info
            FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement),
                                                               new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.Name)));

            _currentStatusbarState        = EStatusbarState.Default;
            _baseWindowStatusbarViewModel = BaseWindowStatusbarViewModel.Instance;
            _myStopwatch         = new Stopwatch();
            _elapsedTimeResource = Application.Current.TryFindResource("ElapsedTime").ToString();

            HierarchialData = new VsDataGridHierarchialData();
            CollectionView  = (ListCollectionView) new CollectionViewSource {
                Source = HierarchialData
            }.View;
            HashsumCollectionViewHolder.Cv = CollectionView;

            ((AsyncCommand <object>)StartCalculationCommand).PropertyChanged += OnStartCalculationPropertyChanged;
        }
Exemple #3
0
        private void ApplicationStartup(object sender, StartupEventArgs e)
        {
            // If it is not the minimum .NET version installed
            if (EnvironmentContainer.NetFrameworkKey <= 393295)
            {
                LOG.Error("Wrong .NET version! Please install .NET 4.6 or newer.");
                Shutdown();
                return;
            }

            if (e.Args.Length > 0)
            {
                ResetHashCalculation();

                _collection = new List <VsDataGridHierarchialDataModel>();
                var dataManager = new VsDataGridHierarchialData();

                foreach (string arg in e.Args)
                {
                    if (string.Compare(arg, "/?", StringComparison.InvariantCulture) == 0)
                    {
                        ShowHelp();
                        break;
                    }

                    if (string.Compare(arg, "/s", StringComparison.CurrentCultureIgnoreCase) == 0)
                    {
                        _shortMode = true;
                        continue;
                    }

                    if (string.Compare(arg, "/uc", StringComparison.InvariantCultureIgnoreCase) == 0)
                    {
                        EnvironmentContainer.Instance.CurrentSettings.UpperCaseHash = true;
                        continue;
                    }

                    if (string.Compare(arg, "/!md5", StringComparison.CurrentCultureIgnoreCase) == 0)
                    {
                        _md5 = false;
                        continue;
                    }

                    if (string.Compare(arg, "/sha1", StringComparison.InvariantCultureIgnoreCase) == 0)
                    {
                        _sha1 = true;
                        continue;
                    }

                    if (string.Compare(arg, "/sha256", StringComparison.InvariantCultureIgnoreCase) == 0)
                    {
                        _sha256 = true;
                        continue;
                    }

                    if (string.Compare(arg, "/sha384", StringComparison.InvariantCultureIgnoreCase) == 0)
                    {
                        _sha384 = true;
                        continue;
                    }

                    if (string.Compare(arg, "/sha512", StringComparison.CurrentCultureIgnoreCase) == 0)
                    {
                        _sha512 = true;
                        continue;
                    }

                    EnvironmentContainer.Instance.CreateHierachialDataObject(dataManager, arg, _md5, _sha1, _sha256, _sha384, _sha512);
                    ResetHashCalculation();
                }

                _collection = dataManager.Where(p => p.HasChildren).ToList();

                RunCalculation();
                Current.Shutdown(0);
                return;
            }

            NotifyTaskCompletion.Create(EnvironmentContainer.Instance.ReadSettingsAsync()).PropertyChanged += OnReadSettingsPropertyChanged;
            AppDomain.CurrentDomain.UnhandledException += CurrentDomainUnhandledException;
        }