示例#1
0
        public IAsyncRepository <T> Repository <T>()
        {
            if (_repositories == null)
            {
                _repositories = new Dictionary <string, dynamic>();
            }
            var type        = typeof(T).Name;
            var currentType = typeof(EFRepository <>);

            if (_repositories.ContainsKey(type))
            {
                return((IAsyncRepository <T>)_repositories[type]);
            }

            var reposityImplement = Assembly.GetAssembly(typeof(EFRepository <>)).GetTypes()
                                    .Where(TheType => TheType.IsClass &&
                                           !TheType.ContainsGenericParameters &&
                                           TheType.IsSubclassOfRawGeneric(typeof(EFRepository <>), type))
                                    .FirstOrDefault();

            if (reposityImplement is null)
            {
                var repositoryType = typeof(EFRepository <>);
                _repositories.Add(type, Activator.CreateInstance(
                                      repositoryType.MakeGenericType(typeof(T)), context)
                                  );
            }
            else
            {
                _repositories.Add(type, Activator.CreateInstance(reposityImplement, context));
            }

            return(_repositories[type]);
        }
    private void InitEffects()
    {
        //init lists
        List <Type> typeList = new List <Type>();

        m_effectsList                = new List <AbstractEffect>();
        m_serializedObjects          = new List <SerializedObject>();
        m_SerializedObject_effectMap = new Dictionary <SerializedObject, AbstractEffect>();
        m_indexProperty_map          = new Dictionary <int, List <SerializedProperty> >();
        m_ActiveEffects              = new List <SerializedObject>();
        //find all Implementations of the abstract class "AbstractEffect"
        foreach (Type effect in Assembly.GetAssembly(typeof(AbstractEffect)).GetTypes()
                 .Where(TheType => TheType.IsClass && !TheType.IsAbstract && TheType.IsSubclassOf(typeof(AbstractEffect))))
        {
            typeList.Add(effect);
        }


        //create instances for each Effect && store the effect & the instance in a list
        foreach (Type currentType in typeList)
        {
            var effect = CreateInstance(currentType);
            m_effectsList.Add((AbstractEffect)effect);
            m_serializedObjects.Add(new SerializedObject(effect));
        }


        m_EffectsDropDown = new string[m_effectsList.Count];
        int i = 0;

        foreach (AbstractEffect effect in m_effectsList)
        {
            m_EffectsDropDown[i] = effect.ToString();
            i++;
        }
        m_selectedEffectIndex = 0;
        m_executionOrder      = 0;
    }
示例#3
0
 public static Type[] GetInheritedClasses(Type MyType)
 {
     //if you want the abstract classes drop the !TheType.IsAbstract but it is probably to instance so its a good idea to keep it.
     return(Assembly.GetAssembly(MyType).GetTypes().Where(TheType => TheType.IsClass && !TheType.IsAbstract && TheType.IsSubclassOf(MyType)).ToArray());
 }
示例#4
0
        /// <summary>
        /// Create the template output
        /// </summary>
        public virtual string TransformText()
        {
            this.Write("\r\n/**\r\n * Calling Type: ");

            #line 9 "W:\Source\open\Timple.Tools.TypeScript\TypeScriptTools\Tools\TypeScript\Translators\PropertiesOnlyTemplate.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(CallingTypeName));

            #line default
            #line hidden
            this.Write("\r\n * Type: ");

            #line 10 "W:\Source\open\Timple.Tools.TypeScript\TypeScriptTools\Tools\TypeScript\Translators\PropertiesOnlyTemplate.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(TheType.FullName));

            #line default
            #line hidden
            this.Write("\r\n * Assembly: ");

            #line 11 "W:\Source\open\Timple.Tools.TypeScript\TypeScriptTools\Tools\TypeScript\Translators\PropertiesOnlyTemplate.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(TheType.Assembly.FullName));

            #line default
            #line hidden
            this.Write("\r\n */\r\n");

            #line 13 "W:\Source\open\Timple.Tools.TypeScript\TypeScriptTools\Tools\TypeScript\Translators\PropertiesOnlyTemplate.tt"

            if (!String.IsNullOrEmpty(TheType.Namespace))
            {
            #line default
            #line hidden
                this.Write("module ");

            #line 16 "W:\Source\open\Timple.Tools.TypeScript\TypeScriptTools\Tools\TypeScript\Translators\PropertiesOnlyTemplate.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(TheType.Namespace));

            #line default
            #line hidden
                this.Write(" {\r\n");

            #line 17 "W:\Source\open\Timple.Tools.TypeScript\TypeScriptTools\Tools\TypeScript\Translators\PropertiesOnlyTemplate.tt"
            }

            if (TheType.IsEnum)
            {
            #line default
            #line hidden
                this.Write("  export enum ");

            #line 22 "W:\Source\open\Timple.Tools.TypeScript\TypeScriptTools\Tools\TypeScript\Translators\PropertiesOnlyTemplate.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(TypeName));

            #line default
            #line hidden
                this.Write(" {\r\n");

            #line 23 "W:\Source\open\Timple.Tools.TypeScript\TypeScriptTools\Tools\TypeScript\Translators\PropertiesOnlyTemplate.tt"

                var tp     = TheType;
                var names  = Enum.GetNames(tp);
                var values = Enum.GetValues(tp);

                for (var i = 0; i < names.Length; i++)
                {
            #line default
            #line hidden
                    this.Write("    ");

            #line 30 "W:\Source\open\Timple.Tools.TypeScript\TypeScriptTools\Tools\TypeScript\Translators\PropertiesOnlyTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(names[i]));

            #line default
            #line hidden
                    this.Write(" = ");

            #line 30 "W:\Source\open\Timple.Tools.TypeScript\TypeScriptTools\Tools\TypeScript\Translators\PropertiesOnlyTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(Enum.Format(tp, values.GetValue(i), "D")));

            #line default
            #line hidden
                    this.Write(",\r\n");

            #line 31 "W:\Source\open\Timple.Tools.TypeScript\TypeScriptTools\Tools\TypeScript\Translators\PropertiesOnlyTemplate.tt"
                }
            }
            else
            {
            #line default
            #line hidden
                this.Write("  export interface ");

            #line 36 "W:\Source\open\Timple.Tools.TypeScript\TypeScriptTools\Tools\TypeScript\Translators\PropertiesOnlyTemplate.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(TypeName));

            #line default
            #line hidden
                this.Write(" ");

            #line 36 "W:\Source\open\Timple.Tools.TypeScript\TypeScriptTools\Tools\TypeScript\Translators\PropertiesOnlyTemplate.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(Extends));

            #line default
            #line hidden
                this.Write(" {\r\n");

            #line 37 "W:\Source\open\Timple.Tools.TypeScript\TypeScriptTools\Tools\TypeScript\Translators\PropertiesOnlyTemplate.tt"

                var props = TheType.GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly);
                foreach (var p in props)
                {
            #line default
            #line hidden
                    this.Write("    ");

            #line 41 "W:\Source\open\Timple.Tools.TypeScript\TypeScriptTools\Tools\TypeScript\Translators\PropertiesOnlyTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(ToCamelCase(p.Name)));

            #line default
            #line hidden
                    this.Write("?: ");

            #line 41 "W:\Source\open\Timple.Tools.TypeScript\TypeScriptTools\Tools\TypeScript\Translators\PropertiesOnlyTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(Translator.Translate(p.PropertyType)));

            #line default
            #line hidden
                    this.Write(";\r\n");

            #line 42 "W:\Source\open\Timple.Tools.TypeScript\TypeScriptTools\Tools\TypeScript\Translators\PropertiesOnlyTemplate.tt"
                }


            #line default
            #line hidden

            #line 45 "W:\Source\open\Timple.Tools.TypeScript\TypeScriptTools\Tools\TypeScript\Translators\PropertiesOnlyTemplate.tt"
            }


            #line default
            #line hidden
            this.Write("  }\r\n\r\n");

            #line 50 "W:\Source\open\Timple.Tools.TypeScript\TypeScriptTools\Tools\TypeScript\Translators\PropertiesOnlyTemplate.tt"

            if (!String.IsNullOrEmpty(TheType.Namespace))
            {
            #line default
            #line hidden
                this.Write("}\r\n");

            #line 54 "W:\Source\open\Timple.Tools.TypeScript\TypeScriptTools\Tools\TypeScript\Translators\PropertiesOnlyTemplate.tt"
            }


            #line default
            #line hidden
            return(this.GenerationEnvironment.ToString());
        }
示例#5
0
        static async Task Main(string[] args)
        {
            var challengeType = typeof(Challenge);

            var types = Assembly.GetAssembly(challengeType).GetTypes().Where(TheType => TheType.IsClass && !TheType.IsAbstract && TheType.IsSubclassOf(challengeType)).ToArray();

            Console.WriteLine("Available Challenges");

            for (int i = 1; i <= types.Length; i++)
            {
                Console.WriteLine($"{i} - {types[i - 1].Name}");
            }

            int selected = -1;

            do
            {
                Console.WriteLine("Choose a Challenge to Run");
                var parsed = int.TryParse(Console.ReadLine(), out int result);
                if (parsed)
                {
                    selected = result;
                }
            } while (selected == -1 || !IsBetween(0, types.Length - 1, selected - 1));


            if (types[selected - 1].IsClass)
            {
                Console.WriteLine($"--------------Start Running {types[selected - 1].Name}-----------------------");
                Console.WriteLine(Environment.NewLine);

                var challenge = (Challenge)Activator.CreateInstance(types[selected - 1]);

                await challenge.Run();

                Console.WriteLine(Environment.NewLine);
                Console.WriteLine($"--------------Finishe {types[selected - 1].Name}-----------------------");
            }
        }
        static void Main(string[] args)
        {
            var challengeType = typeof(Challenge);

            var types = Assembly.GetAssembly(challengeType).GetTypes().Where(TheType => TheType.IsClass && !TheType.IsAbstract && TheType.IsSubclassOf(challengeType)).ToList();

            foreach (var type in types)
            {
                if (type.IsClass)
                {
                    Console.WriteLine($"--------------Running {type.Namespace} {type.Name}-----------------------");
                    Console.WriteLine(Environment.NewLine);

                    var challenge = (Challenge)Activator.CreateInstance(type);
                }
            }
        }
示例#7
0
 public static Type[] GetInheritedClasses(Type MyType)
 {
     return(Assembly.GetAssembly(MyType).GetTypes().Where(TheType => TheType.IsClass && !TheType.IsAbstract && TheType.IsSubclassOf(MyType)).ToArray());
 }
示例#8
0
        public void selectBoss()
        {
            Type[] chooseMob = Assembly.GetAssembly(typeof(Boss)).GetTypes().Where(TheType => TheType.IsClass && !TheType.IsAbstract && TheType.IsSubclassOf(typeof(Boss))).ToArray();
            x = r.Next(chooseMob.Length);
            ConstructorInfo ctor = chooseMob[x].GetConstructor(new Type[0]);

            selectedBoss = (Boss)ctor.Invoke(new object[] { });

            pbEnemy.BackgroundImage = selectedBoss.bossImage;
            p.enemyMaxHP            = selectedBoss.bossMaxHP;
            p.newCoins       = selectedBoss.coinValue;
            p.expAdd        += 3;
            p.enemyHP        = p.enemyMaxHP;
            lblPlayerHP.Text = "HP: " + p.playerHP + "/" + p.playerMaxHP;
            lblEnemyHP.Text  = "HP: " + p.enemyHP + "/" + p.enemyMaxHP;
        }
示例#9
0
        //Function for selecting a random enemy
        public void selectMob()
        {
            Type[] chooseMob = Assembly.GetAssembly(typeof(Mob)).GetTypes().Where(TheType => TheType.IsClass && !TheType.IsAbstract && TheType.IsSubclassOf(typeof(Mob))).ToArray();
            x = r.Next(chooseMob.Length);
            ConstructorInfo ctor = chooseMob[x].GetConstructor(new Type[0]);

            selectedMob             = (Mob)ctor.Invoke(new object[] { });
            pbEnemy.BackgroundImage = selectedMob.mobImage;
        }
示例#10
0
 //Function for selecting a random enemy depending on the stage rank
 public void selectMob()
 {
     if (p.stageRank == 1)
     {
         Type[] chooseMob = Assembly.GetAssembly(typeof(MobLowRank)).GetTypes().Where(TheType => TheType.IsClass && !TheType.IsAbstract && TheType.GetInterfaces().Contains(typeof(MobLowRank))).ToArray();
         x = r.Next(chooseMob.Length);
         ConstructorInfo ctor = chooseMob[x].GetConstructor(new Type[0]);
         selectedMob   = (Mob)ctor.Invoke(new object[] { });
         currentNewExp = 2;
         p.newCoins    = selectedMob.coinValue - 1;
     }
     else if (p.stageRank == 2)
     {
         Type[] chooseMob = Assembly.GetAssembly(typeof(MobMidRank)).GetTypes().Where(TheType => TheType.IsClass && !TheType.IsAbstract && TheType.GetInterfaces().Contains(typeof(MobMidRank))).ToArray();
         x = r.Next(chooseMob.Length);
         ConstructorInfo ctor = chooseMob[x].GetConstructor(new Type[0]);
         selectedMob   = (Mob)ctor.Invoke(new object[] { });
         currentNewExp = 5;
         if (selectedMob != p.mobs.spaceGoblin)
         {
             p.newCoins = selectedMob.coinValue - 2;
         }
         else
         {
             p.newCoins = selectedMob.coinValue - 3;
         }
     }
     else if (p.stageRank == 3)
     {
         Type[] chooseMob = Assembly.GetAssembly(typeof(MobHighRank)).GetTypes().Where(TheType => TheType.IsClass && !TheType.IsAbstract && TheType.GetInterfaces().Contains(typeof(MobHighRank))).ToArray();
         x = r.Next(chooseMob.Length);
         ConstructorInfo ctor = chooseMob[x].GetConstructor(new Type[0]);
         selectedMob   = (Mob)ctor.Invoke(new object[] { });
         currentNewExp = 8;
         if (selectedMob != p.mobs.crossbowMonke)
         {
             p.newCoins = selectedMob.coinValue - 3;
         }
         else
         {
             p.newCoins = selectedMob.coinValue - 5;
         }
     }
     pbEnemy.BackgroundImage = selectedMob.mobImage;
 }
示例#11
0
 public void Add(TheType item)
 {
     items.Add(item);
 }