Пример #1
0
        public IAEActionViewModel NewAEActionViewModel(AEAction aEAction)
        {
            if (!AEActionDict.ContainsKey(aEAction))
            {
                throw new NotImplementedException("The AEAction is not implemented");
            }

            Type instanceType = AEActionDict[aEAction];

            var constructorInfos = instanceType.GetConstructors();

            //TODO: Add a way to choose constructor
            var constructorInfo = constructorInfos[0];
            var parameters      = constructorInfo.GetParameters();

            var parametersInstance = new List <object>();

            foreach (var param in parameters)
            {
                if (!DependencyDict.ContainsKey(param.ParameterType))
                {
                    throw new NotImplementedException("The Dependency of " + param.ParameterType + " " + "is not implemented");
                }

                parametersInstance.Add(DependencyDict[param.ParameterType]);
            }

            return((IAEActionViewModel)constructorInfo.Invoke(parametersInstance.ToArray()));
        }
Пример #2
0
        public TurnViewModel NewTurn(AEAction aEAction)
        {
            if (!turnDict.ContainsKey(aEAction))
            {
                throw new NotImplementedException("The turn for this action has not yet implement");
            }

            return((TurnViewModel)Activator.CreateInstance(turnDict[aEAction]));
        }