Beispiel #1
0
        private Manager()
        {
            AccessData     = new AccessXML();
            Page           = LoginUC.TITLE;
            AccessData.Key = Properties.Settings.Default.Key;
            AccessData.IV  = Properties.Settings.Default.IV;

            AccessData.Security = false;
        }
Beispiel #2
0
        private CardBase()
        {
            ImageBase = new ImageFile();
            Cards     = new List <Card>();

            if (!File.Exists(ConfigurationManager.AppSettings["XMLCardBasePath"]))
            {
                return;
            }

            XmlDocument doc = new XmlDocument();

            doc.Load(ConfigurationManager.AppSettings["XMLCardBasePath"]);
            foreach (XmlNode XMLCardDescription in doc.GetElementsByTagName("Card"))
            {
                Card card = new Card();

                card.Header      = XMLCardDescription.SelectSingleNode("Header").InnerText;
                card.Description = XMLCardDescription.SelectSingleNode("Description").InnerText;
                card.uid         = Guid.Parse(XMLCardDescription.SelectSingleNode("uid").InnerText);

                card.ImageRef = Guid.Parse(XMLCardDescription.SelectSingleNode("Image").InnerText);

                //Заполняем эффекты
                card.effects = new List <ParametredAction>();
                foreach (XmlNode EffectXML in XMLCardDescription.SelectSingleNode("Effects").ChildNodes)
                {
                    XmlNode       EffectParamsNode = EffectXML.SelectSingleNode("Parameters");
                    List <object> Params           = new List <object>();
                    for (int i = 0; i < EffectParamsNode.ChildNodes.Count; i++)
                    {
                        Params.Add(EffectParamsNode.ChildNodes[i].InnerText);
                    }
                    string EffectName = EffectXML.SelectSingleNode("Name").InnerText;
                    string MethodName = EffectXML.SelectSingleNode("MethodName").InnerText;

                    ParameterInfo[] info        = typeof(Effect).GetMethod(MethodName).GetParameters();
                    ArrayList       ReadyParams = new ArrayList();
                    for (int j = 0; j < info.Length; j++)
                    {
                        if (!info[j].ParameterType.IsEnum)
                        {
                            ReadyParams.Add(Convert.ChangeType(Params[j], info[j].ParameterType));
                        }
                        else
                        {
                            ReadyParams.Add(Enum.Parse(info[j].ParameterType, (string)Params[j]));
                        }
                    }

                    ParametredAction pa = new ParametredAction(typeof(Effect).GetMethod(MethodName), ReadyParams.ToArray(), typeof(Effect));
                    pa.Name = EffectName;
                    card.effects.Add(pa);
                }

                //Заполняем доступы
                card.accesses = new List <ParametredAction>();
                foreach (XmlNode AccessXML in XMLCardDescription.SelectSingleNode("Accesses").ChildNodes)
                {
                    XmlNode       AccessParamsNode = AccessXML.SelectSingleNode("Parameters");
                    List <object> Params           = new List <object>();
                    for (int i = 0; i < AccessParamsNode.ChildNodes.Count; i++)
                    {
                        Params.Add(AccessParamsNode.ChildNodes[i].InnerText);
                    }
                    string AccessName = AccessXML.SelectSingleNode("Name").InnerText;
                    string MethodName = AccessXML.SelectSingleNode("MethodName").InnerText;

                    ParameterInfo[] info        = typeof(Access).GetMethod(MethodName).GetParameters();
                    ArrayList       ReadyParams = new ArrayList();
                    for (int j = 0; j < info.Length; j++)
                    {
                        if (!info[j].ParameterType.IsEnum)
                        {
                            ReadyParams.Add(Convert.ChangeType(Params[j], info[j].ParameterType));
                        }
                        else
                        {
                            ReadyParams.Add(Enum.Parse(info[j].ParameterType, (string)Params[j]));
                        }
                    }
                    ParametredAction pa = new ParametredAction(typeof(Access).GetMethod(MethodName), ReadyParams.ToArray(), typeof(Access));
                    pa.Name = AccessName;
                    card.accesses.Add(pa);
                }
                Cards.Add(card);
            }
        }