コード例 #1
0
        public async Task <ActionResult> GetHello()
        {
            var d = new DummyInfo {
                Content = "hello"
            };

            return(Ok(d));
        }
コード例 #2
0
ファイル: BlockDef.cs プロジェクト: Hengle/EnergyWeapons
        private void DetermineDetectors()
        {
            Dictionary <string, DummyInfo> data = new Dictionary <string, DummyInfo>();

            foreach (var c in Components)
            {
                foreach (var k in c.Inputs)
                {
                    DummyInfo tmp;
                    if (!data.TryGetValue(k, out tmp))
                    {
                        data.Add(k, tmp = DummyInfo.Create());
                    }
                    tmp.InputFor.Add(c);
                }

                foreach (var k in c.Outputs)
                {
                    DummyInfo tmp;
                    if (!data.TryGetValue(k, out tmp))
                    {
                        data.Add(k, tmp = DummyInfo.Create());
                    }
                    tmp.OutputFor.Add(c);
                }

                foreach (var k in c.Internal)
                {
                    DummyInfo tmp;
                    if (!data.TryGetValue(k, out tmp))
                    {
                        data.Add(k, tmp = DummyInfo.Create());
                    }
                    tmp.InternalFor.Add(c);
                }
            }

            _detectorsIn    = new List <string>();
            _detectorsOut   = new List <string>();
            _detectorsBidir = new List <string>();
            foreach (var kv in data)
            {
                var inCount  = kv.Value.InputFor.Except(kv.Value.OutputFor).Count();
                var outCount = kv.Value.OutputFor.Except(kv.Value.InputFor).Count();

                if (kv.Value.InternalFor.Count > 0)
                {
                    if (kv.Value.InternalFor.Count > 1)
                    {
                        EnergyWeaponsCore.LoggerStatic?.Warning(
                            $"For {Id}, dummy {kv.Key}: Internal on more than 1 thing: {string.Join(", ", kv.Value.InternalFor)}");
                    }
                    if (kv.Value.OutputFor.Count > 0)
                    {
                        EnergyWeaponsCore.LoggerStatic?.Warning(
                            $"For {Id}, dummy {kv.Key}: Internal used as output: {string.Join(", ", kv.Value.OutputFor)}");
                    }
                    if (kv.Value.InputFor.Count > 0)
                    {
                        EnergyWeaponsCore.LoggerStatic?.Warning(
                            $"For {Id}, dummy {kv.Key}: Internal used as input: {string.Join(", ", kv.Value.InputFor)}");
                    }
                }

                if (inCount > 1)
                {
                    EnergyWeaponsCore.LoggerStatic?.Warning(
                        $"For {Id}, dummy {kv.Key}: used as multiple inputs: {string.Join(", ", kv.Value.InputFor)}");
                }

                if (outCount > 1)
                {
                    EnergyWeaponsCore.LoggerStatic?.Warning(
                        $"For {Id}, dummy {kv.Key}: used as multiple outputs: {string.Join(", ", kv.Value.OutputFor)}");
                }

                if (outCount > 0 && inCount == 0)
                {
                    _detectorsOut.Add(kv.Key);
                }
                if (outCount == 0 && inCount > 0)
                {
                    _detectorsIn.Add(kv.Key);
                }
                if (outCount == 0 && inCount == 0 && kv.Value.InputFor.Intersect(kv.Value.OutputFor).Count() > 0)
                {
                    _detectorsBidir.Add(kv.Key);
                }
            }
        }