public override void DictDeserialize(IDictionary <string, object> docu, Scenario scenario = Scenario.Database) { base.DictDeserialize(docu); var doc = docu as FreeDocument; if (doc.Children != null) { var items = doc.Children; foreach (var item in items) { var proces = new ProcessTask(); proces.Project = this; proces.DictDeserialize(item); Tasks.Add(proces); } } if (docu["DBConnections"] != null) { var items = docu["DBConnections"] as FreeDocument; if (items?.Children != null) { foreach (var item in items.Children) { var type = item["TypeName"].ToString(); var conn = PluginProvider.GetObjectByType <IDataBaseConnector>(type) as DBConnectorBase; if (conn == null) { continue; } conn.DictDeserialize(item); DBConnections.Add(conn); } } } if (DBConnections.FirstOrDefault(d => d.TypeName == "文件管理") == null) { var filemanager = new FileManager() { Name = "最近打开的文件" }; DBConnections.Add(filemanager); } if (DBConnections.FirstOrDefault(d => d.TypeName == "MongoDB") == null) { var mongo = new MongoDBConnector() { Name = "MongoDB连接器" }; mongo.DBName = "hawk"; DBConnections.Add(mongo); } }
public override void DictDeserialize(IDictionary <string, object> docu, Scenario scenario = Scenario.Database) { base.DictDeserialize(docu); var doc = docu as FreeDocument; if (doc.Children != null) { var items = doc.Children; foreach (var item in items) { var proces = new ProcessTask(); proces.Project = this; proces.DictDeserialize(item); Tasks.Add(proces); } } if (docu["DBConnections"] != null) { var items = docu["DBConnections"] as FreeDocument; if (items?.Children != null) { foreach (var item in items.Children) { var type = item["TypeName"].ToString(); var conn = PluginProvider.GetObjectByType <IDataBaseConnector>(type) as DBConnectorBase; if (conn == null) { continue; } conn.DictDeserialize(item); DBConnections.Add(conn); } } } if (docu["RunningTasks"] != null) { var tasks = docu["RunningTasks"] as FreeDocument; SavedRunningTasks = tasks?.Children; } if (docu["Parameters"] != null) { var tasks = docu["Parameters"] as FreeDocument; if (tasks != null) { Parameters.AddRange(tasks?.Children?.Select(d => { var param = new ParameterItem(); param.UnsafeDictDeserialize(d); return(param); })); } } ConfigSelector.SelectItem = docu["ParameterName"].ToString(); if (DBConnections.FirstOrDefault(d => d.TypeName == GlobalHelper.Get("FileManager")) == null) { var filemanager = new FileManager { Name = GlobalHelper.Get("recent_file") }; DBConnections.Add(filemanager); } if (DBConnections.FirstOrDefault(d => d.TypeName == "MongoDB") == null) { var mongo = new MongoDBConnector { Name = "MongoDB连接器" }; mongo.DBName = "hawk"; DBConnections.Add(mongo); } if (DBConnections.FirstOrDefault(d => d.TypeName == GlobalHelper.Get("SQLiteDatabase")) == null) { var sqlite = new SQLiteDatabase { Name = GlobalHelper.Get("SQLiteDatabase") }; sqlite.DBName = "hawk-sqlite"; DBConnections.Add(sqlite); } }