public void EndInit() { if (IsTracingEnabled) { ImportTracer(); } ImportPersister(); SaveModel.RaiseCanExecuteChanged(); LoadModel.RaiseCanExecuteChanged(); }
private void ReloadAssembly() { LoadAssembly(); ObjectsList.Clear(); if (LoadedAssemblyRepresentation != null) { TreeViewItem item = new AssemblyItem((AssemblyMetadata)LoadedAssemblyRepresentation); ObjectsList.Add(item); SaveModel.RaiseCanExecuteChanged(); ObjectSelected = item; } }
private async Task Load(ISourceProvider targetPathProvider) { if (targetPathProvider == null) { throw new ArgumentNullException(nameof(targetPathProvider), "SourceProvider can't be null."); } if (Persister.FileSystemDependency == FileSystemDependency.Independent) { targetPathProvider = new NullSourceProvider(); } if (targetPathProvider.GetAccess()) { try { string target = targetPathProvider.GetPath(); IAssemblyMetadata result = await Task.Run( async() => await LoadRootAssembly(target)); if (result is null) { const string errorMessage = "Repository doesn't contain any elements"; ErrorMessageTarget.SendMessage("Loading error", errorMessage); if (IsTracingEnabled) { Tracer.LogFailure($"{target}; {errorMessage}"); Tracer.Flush(); } } else { ObjectsList.Clear(); ObjectsList.Add(new AssemblyItem(result as AssemblyMetadata)); LoadedAssembly = "Model deserialized"; SaveModel.RaiseCanExecuteChanged(); InformationMessageTarget?.SendMessage("Loading completed", "Model was successfully loaded."); if (IsTracingEnabled) { Tracer.LogModelLoaded(target); Tracer.Flush(); } } } catch (Exception ex) { ErrorMessageTarget.SendMessage("Loading error", ex.Message); if (IsTracingEnabled) { Tracer.LogFailure( $"Exception caught when trying to open a file for reading {Environment.NewLine}{ex.Message}"); Tracer.Flush(); } } } else { ErrorMessageTarget.SendMessage("Target in use", "File you tried to open is currently in use by another program"); } }