Exemplo n.º 1
0
		public void GetOrCreate_Existing_AreEqual()
		{
			var info = new BotInfo("Engine1", 0);

			var bots = new Bots();
            bots.Add(new Bot() { Info = new BotInfo("Engine1", 0, true) });

			var act = bots.GetOrCreate(info);

			Assert.AreEqual(1, bots.Count, "bots.Count");
			Assert.AreEqual("Engine1", act.Info.Name, "Name");
			Assert.AreEqual(false, act.Info.Inactive, "Inactive");
		}
Exemplo n.º 2
0
        private MethodInfo GetMainMethod(BotInfo info)
        {
            var exe = BotLocations[info].GetFiles("*.exe").FirstOrDefault();
            if(exe != null)
            {
                var assembly = Assembly.LoadFile(exe.FullName);

                var program = assembly.GetTypes().FirstOrDefault(tp => tp.GetMethod("Main", BindingFlags.Public|BindingFlags.NonPublic|BindingFlags.Static) != null);

                if(program != null)
                {
                    var main = program.GetMethod("Main", BindingFlags.Public|BindingFlags.NonPublic|BindingFlags.Static);
                    return main;
                }
            }
            return null;
        }
Exemplo n.º 3
0
		public static bool TryParse(string dir, out BotInfo info)
        {
            var match = DirectoryPattern.Match(dir ?? String.Empty);

            if (match.Success)
            {
                var inactive = !String.IsNullOrEmpty(match.Groups["disabled"].Value);
                var name = match.Groups["name"].Value;
                var version = String.IsNullOrEmpty(match.Groups["version"].Value) ? 0 : Int32.Parse(match.Groups["version"].Value);

                info = new BotInfo(name, version, inactive);
                return true;
            }
            else
            {
                info = default(BotInfo);
                return false;
            }
        }
Exemplo n.º 4
0
		public static bool TryCreate(DirectoryInfo dir, out BotInfo info)
		{
			return TryParse(dir.Name, out info);
		}