/// <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; }
/// <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; }
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; }