private JournalOperation ExtractSynthesis(JObject data)
        {
            var synthesisOperation = new SynthesisOperation()
            {
                SynthesisPartOperation = new List <JournalOperation>()
            };

            foreach (var jToken in data["Materials"])
            {
                dynamic cc = jToken;
                string  synthesisIngredientName = cc.Name;
                int?    count = cc.Value ?? cc.Count;

                if (!converter.TryGet(synthesisIngredientName, out synthesisIngredientName))
                {
                    MessageBox.Show(string.Format(languages.Translate("Unknown material, please contact the author ! {0}"), synthesisIngredientName));
                    continue;
                }

                var entry = converter[synthesisIngredientName];

                switch (entry.Kind)
                {
                case Kind.Material:
                    synthesisOperation.SynthesisPartOperation.Add(new MaterialOperation()
                    {
                        MaterialName = synthesisIngredientName,
                        Size         = -1 * count ?? -1
                    });

                    break;

                case Kind.Data:
                    synthesisOperation.SynthesisPartOperation.Add(new DataOperation()
                    {
                        DataName = synthesisIngredientName,
                        Size     = -1 * count ?? -1
                    });

                    break;

                case Kind.Commodity:
                    synthesisOperation.SynthesisPartOperation.Add(new CargoOperation()
                    {
                        CommodityName = synthesisIngredientName,
                        Size          = -1 * count ?? -1
                    });

                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }

            return(synthesisOperation.SynthesisPartOperation.Any() ? synthesisOperation : null);
        }
Esempio n. 2
0
        private JournalOperation ExtractSynthesis(JObject data)
        {
            var synthesisOperation = new SynthesisOperation()
            {
                SynthesisPartOperation = new List <JournalOperation>()
            };

            foreach (var jToken in data["Materials"])
            {
                var    material = (JProperty)jToken;
                string synthesisIngredientName;
                if (!converter.TryGet(material.Name, out synthesisIngredientName))
                {
                    MessageBox.Show($"Unknown material, please contact the author ! {material.Name}");
                    continue;
                }

                var entry = converter[synthesisIngredientName];

                switch (entry.Kind)
                {
                case Kind.Materiales:
                    synthesisOperation.SynthesisPartOperation.Add(new MaterialOperation()
                    {
                        MaterialName = synthesisIngredientName,
                        Size         = -1 * material.Value?.ToObject <int>() ?? -1
                    });

                    break;

                case Kind.Datos:
                    synthesisOperation.SynthesisPartOperation.Add(new DataOperation()
                    {
                        DataName = synthesisIngredientName,
                        Size     = -1 * material.Value?.ToObject <int>() ?? -1
                    });

                    break;

                case Kind.Mercancias:
                    synthesisOperation.SynthesisPartOperation.Add(new CargoOperation()
                    {
                        CommodityName = synthesisIngredientName,
                        Size          = -1 * material.Value?.ToObject <int>() ?? -1
                    });

                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }

            return(synthesisOperation.SynthesisPartOperation.Any() ? synthesisOperation : null);
        }
Esempio n. 3
0
        private JournalOperation ExtractSynthesis(JObject data)
        {
            var synthesisOperation = new SynthesisOperation()
            {
                SynthesisPartOperation = new List <JournalOperation>()
            };

            foreach (var jToken in data["Materials"])
            {
                dynamic cc = jToken;
                var     synthesisIngredientName = converter.GetOrCreate((string)cc.Name);
                int?    count = cc.Value ?? cc.Count;

                var entry = converter[synthesisIngredientName];

                switch (entry.Kind)
                {
                case Kind.Material:
                    synthesisOperation.SynthesisPartOperation.Add(new MaterialOperation()
                    {
                        MaterialName = synthesisIngredientName,
                        Size         = -1 * count ?? -1
                    });

                    break;

                case Kind.Data:
                    synthesisOperation.SynthesisPartOperation.Add(new DataOperation()
                    {
                        DataName = synthesisIngredientName,
                        Size     = -1 * count ?? -1
                    });

                    break;

                case Kind.Commodity:
                    synthesisOperation.SynthesisPartOperation.Add(new CargoOperation()
                    {
                        CommodityName = synthesisIngredientName,
                        Size          = -1 * count ?? -1
                    });

                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }

            return(synthesisOperation.SynthesisPartOperation.Any() ? synthesisOperation : null);
        }