public static PluginCollection Parse(Config cn) { PluginCollection p = new PluginCollection(); int i = 1; foreach (Section s in cn) { if (s.Name == "[Plugin #" + i + "]") { if (s["Path"] != null && s["Username"] != null && s["Password"] != null) { if (s["UserDescription"] != null) { p.Add(new Plugin(s["Path"], s["Username"], s["Password"], s["UserDescription"])); } else { p.Add(new Plugin(s["Path"], s["Username"], s["Password"])); } i++; } } } return(p); }
/*public static PluginCollection operator -(PluginCollection lhs, PluginCollection rhs) * { * PluginCollection pc = new PluginCollection(); * if (lhs > rhs) * { * * //A=lhs, B=rhs * //A⊂ B * foreach (Plugin ParametersInstance in lhs) * { * Plugin pl = rhs[ParametersInstance.Name, ParametersInstance.Version]; * if (ParametersInstance == pl) * continue; * else * return false; * } * //B⊂A * foreach (Plugin ParametersInstance in rhs) * { * Plugin pl = lhs[ParametersInstance.Name, ParametersInstance.Version]; * if (ParametersInstance == pl) * continue; * else * return false; * } * return true; * } * else if (rhs > lhs) * { * } * return pc; * }*/ public static PluginCollection FindPlugins(string folder) { //TODO: добавить обработку исключений //MessageBox.Show(AppDomain.CurrentDomain.BaseDirectory); PluginCollection pc = new PluginCollection(); string[] files = Directory.GetFiles(folder, "*.dll"); foreach (string s in files) { Plugin p = new Plugin(s); if (p.Valid) { pc.Add(p); } } return(pc); }
public static PluginCollection Synchronize(PluginCollection from, PluginCollection to) { PluginCollection pc = new PluginCollection(); foreach (Plugin p in to) { Plugin pl = from[p.Name]; if (pl != null) { p.Username = pl.Username; p.Password = pl.Password; p.UserDescription = pl.UserDescription; p.Checked = true; p.Update(); pc.Add(p); } } return(pc); }