public CommandConsole(string refTypes, ArgClass[] cls, bool init, string initDir, string[] initStrings)
     : base(init, initDir, initStrings)
 {
     for (int i = 0; i < refTypes.Length; i++)
     {
         if (cls[i] == null)
             this.AddReference(new ArgClass(refTypes[i]));
         else
             this.AddReference(cls[i]);
     }
 }
Beispiel #2
0
        public void UseListClass()
        {
            SetLog("-- ↓ --");

            //★App.config化により不要 StartService();

            try
            {
                // サービスメソッドの呼び出し.
                // List<RetClass> UseListClass(List<ArgClass> argClass);
                //★App.config化により変更 var argClasss = new List<ArgClass>() {
                var argClasss = new ArgClass[] {
                    new ArgClass(123, "abc"),
                    new ArgClass(456, "DEF"),
                    new ArgClass(789, "Ghi"),
                    new ArgClass(101112, "JkL"),
                };
                //★App.config化により追記
                using (var client = new ServiceClient())
                {
                    //★App.config化により変更 var result = _service.UseListClass(argClasss);
                    //★App.config化によりList使えない var result = client.UseListClass(argClasss);
                    var result = client.UseListClass(argClasss);

                    result.ToList().ForEach(r => SetLog(r.Code.ToString() + "/" + r.Name));
                }
            }
            catch (CommunicationException ex)
            {
                // エラー発生
                //
                // WCFでは、サービスとクライアント間の通信中にエラーが発生した場合
                // CommunicationExceptionがスローされる。
                MessageBox.Show(ex.Message);
                SetLog(ex.Message);
            }

            SetLog("-- ↑ --");
        }
        //Setters
        public void AddReference(ArgClass o)
        {
            //var l = this._argRefs;

            //Get Static References
            if (o.Parent != null)
            {
                var p = this.GetReference(o.Parent);
                if ((from ArgClass la in o.Parent.SubRefs
                     where la.FullName == o.FullName
                     select la).Count<ArgClass>() > 0 ||
                    this._argRefs.Contains(o))
                    return;

                o.Parent.AddSubArg(o);
                return;
            }

            if ((from ArgClass la in this._argRefs
                 where la.FullName == o.FullName
                 select la).Count<ArgClass>() == 0 &&
                 !this._argRefs.Contains(o))
                this._argRefs.Add(o);
        }
Beispiel #4
0
 public RetClass UseClass(ArgClass argClass)
 {
     return(new RetClass(
                code: argClass.Price * 2,
                name: $"[kind-{argClass.Kind}]"));
 }
        //Getters
        public ArgClass GetReference(ArgClass r)
        {
            string[] chain = r.FullDotName.Split('.');
            var a = (from ArgClass x in this._argRefs
                     where r.FullName == x.FullName
                     select x).ToList<ArgClass>();

            if (a.Count == 1 && chain.Length == 1)
                return a[0];

            if (a.Count > 0 || chain.Length == 0)
                throw new NotImplementedException();

            var cr = this._argRefs;
            ArgClass ca = null;
            var rv = new List<ArgClass>();
            for (int i = 0; i < chain.Length; i++)
            {
                var lca = (from ArgClass x in cr
                           where chain[i] == x.ArgName || chain[i] == "" + x.Prefix
                           select x).ToList<ArgClass>();

                if (lca.Count != 1)
                    return null;

                cr = lca[0].SubRefs;
                ca = lca[0];
            }

            return ca;
        }
 public void AddReferences(ArgClass[] o)
 {
     for (int i = 0; i < o.Length; i++)
         this.AddReference(o[i]);
 }
                public Reference(ArgClass par, string[] dotHierarchy, string name, string dblprfx, string sfx)
                    : base(par, par._prefix)
                {
                    this._argName = name;
                    this._dotHierarchy = dotHierarchy;
                    this._dblPrefix = dblprfx;
                    this._suffix = sfx;

                    if (sfx != null)
                    {
                        this._conParams = sfx.Substring(1, sfx.Length - 2).Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
                        foreach (string s in this._conParams)
                            s.Trim();
                    }

                    var k = par._funcs.Keys.ToArray();
                    for (int i = 0; i < k.Length; i++)
                        this._funcs.Add(k[i], par._funcs[k[i]]);

                    return;
                }
            public void GetObjectFunction(ArgClass caller, List<ArgClass> chain, out ArgClass refArg, out ArgClass funcArg)
            {
                //find final object
                refArg = null;
                funcArg = null;
                int i = 0;
                while (i < chain.Count)
                {
                    if (refArg != null && !(refArg is Reference))
                        break;

                    refArg = chain[i];
                    if (refArg is Reference)
                        i++;
                    else
                        break;
                }

                if (refArg == null)
                    refArg = caller;

                funcArg = refArg;
                while (i < chain.Count)
                {
                    funcArg = chain[i];
                    if (!(funcArg is Reference) || funcArg == null)
                        i++;
                    else
                        break;
                }
            }
 //SubCreators
 public virtual Reference CreateNewReference(ArgClass par, string[] dotHierarchy, string name, string dblprfx, string sfx)
 {
     return new Reference(par, dotHierarchy, name, dblprfx, sfx);
 }
 //Setters
 public void AddSubArg(ArgClass r)
 {
     if (!this._subRefs.Contains(r) && (from ArgClass a in this._subRefs
                                        where a.FullName == r.FullName
                                        select a).ToList<ArgClass>().Count == 0)
         this._subRefs.Add(r);
 }
            public ArgClass(ArgClass p, char? prfx)
            {
                this._parRef = p;
                this._prefix = prfx;

                //if (prfx.HasValue)
                //    this._argName = "" + prfx.Value;
            }