private bool TryDeserializeInternal(IDeserializerContext context, ICompositeStorage storage) { string typeName = storage.Get <string>(Name.TypeName); if (!typeNameMapper.TryGet(typeName, out Type outputType)) { return(false); } if (!storage.TryGet(Name.Payload, out ICompositeStorage childStorage)) { return(false); } ICompositeModel model = modelFactory.Create(outputType) as ICompositeModel; if (model == null) { return(false); } model.Load(childStorage); context.Output = model; return(true); }
private List <AdditionalApplicationModel> LoadCollection(ICompositeStorage storage) { List <AdditionalApplicationModel> result = new List <AdditionalApplicationModel>(); int count = storage.Get("Count", 0); for (int i = 0; i < count; i++) { if (storage.TryGet(i.ToString(), out ICompositeStorage itemStorage)) { AdditionalApplicationModel model = LoadItem(itemStorage); if (model != null) { result.Add(model); } } } if (result.Count == 0) { return(null); } return(result); }
private AdditionalApplicationModel LoadItem(ICompositeStorage storage) { string name = storage.Get <string>("Name"); string path = storage.Get <string>("Path"); string arguments = storage.Get <string>("Arguments", null); Key hotKey = storage.Get("HotKey", Key.None); IReadOnlyList <AdditionalApplicationModel> commands = LoadCollection(storage); if (commands == null) { return(new AdditionalApplicationModel(name, path, arguments, hotKey)); } else { return(new AdditionalApplicationModel(name, path, arguments, hotKey, commands)); } }
public void Load(ICompositeStorage storage) { int configurationVersion = storage.Get("ConfigurationVersion", 1); FileSearchPattern = storage.Get <string>("FileSearchPattern"); IsAutoSelectApplicationVersion = storage.Get <bool>("IsAutoSelectApplicationVersion"); IsDismissedWhenLostFocus = storage.Get <bool>("IsDismissedWhenLostFocus"); IsDisplayedPathTrimmedToLastFolderName = storage.Get <bool>("IsDisplayedPathTrimmedToLastFolderName"); IsFileNameRemovedFromDisplayedPath = storage.Get <bool>("IsFileNameRemovedFromDisplayedPath"); IsFileSearchPatternSaved = storage.Get <bool>("IsFileSearchPatternSaved"); IsHiddentOnStartup = storage.Get <bool>("IsHiddentOnStartup"); IsLastUsedApplicationSavedAsPrefered = storage.Get <bool>("IsLastUsedApplicationSavedAsPrefered"); IsProjectCountEnabled = storage.Get <bool>("IsProjectCountEnabled"); IsStatisticsCounted = storage.Get <bool>("IsStatisticsCounted"); IsTrayIcon = storage.Get <bool>("IsTrayIcon"); PinnedFiles = storage.Get <IReadOnlyList <string> >("PinnedFiles"); PositionTop = storage.Get <int>("PositionTop"); PositionLeft = storage.Get <int>("PositionLeft"); PositionMode = storage.Get <PositionMode>("PositionMode"); PreferedApplicationPath = storage.Get <string>("PreferedApplicationPath"); RunKey = storage.Get <string>("RunKey"); SourceDirectoryPath = storage.Get <string>("SourceDirectoryPath"); ThemeMode = storage.Get <ThemeMode>("ThemeMode"); AdditionalApplications = new AdditionalApplicationCollection(); if (storage.TryGet("AdditionalApplications", out var additionalApplications)) { AdditionalApplications.Load(additionalApplications); } HiddenMainApplications = storage.Get <IReadOnlyList <string> >("HiddenMainApplications"); FileSearchCount = storage.Get <int>("FileSearchCount"); FileSearchMode = storage.Get <FileSearchMode>("FileSearchMode"); AutoSelectApplicationMinimalVersion = storage.Get <Version>("AutoSelectApplicationMinimalVersion"); LogLevel = storage.Get("LogLevel", LogLevel.Error); }