Exemple #1
0
        internal static IList <ProcessResource> ReadProcessResources(IParser parser)
        {
            var result = new List <ProcessResource>();

            parser.Expect <SequenceStart>();
            while (parser.Allow <SequenceEnd>() == null)
            {
                parser.Expect <MappingStart>();
                Scalar scalar = parser.Expect <Scalar>();
                switch (scalar.Value ?? String.Empty)
                {
                case YamlConstants.Endpoint:
                case YamlConstants.Repo:
                    break;

                default:
                    throw new SyntaxErrorException(scalar.Start, scalar.End, $"Unexpected resource type: '{scalar.Value}'");
                }

                var resource = new ProcessResource {
                    Type = scalar.Value
                };
                resource.Name = ReadNonEmptyString(parser);;
                while (parser.Allow <MappingEnd>() == null)
                {
                    string dataKey = ReadNonEmptyString(parser);
                    if (parser.Accept <MappingStart>())
                    {
                        resource.Data[dataKey] = ReadMapping(parser);
                    }
                    else if (parser.Accept <SequenceStart>())
                    {
                        resource.Data[dataKey] = ReadSequence(parser);
                    }
                    else
                    {
                        resource.Data[dataKey] = parser.Expect <Scalar>().Value ?? String.Empty;
                    }
                }

                result.Add(resource);
            }

            return(result);
        }
        static void Main(string[] args)
        {
            Console.ForegroundColor = ConsoleColor.White;
            Console.BackgroundColor = ConsoleColor.DarkBlue;

            Farm Trestlebridge = new Farm();

            while (true)
            {
                DisplayBanner();
                Console.WriteLine("1. Create Facility");
                Console.WriteLine("2. Purchase Animals");
                Console.WriteLine("3. Purchase Seeds");
                Console.WriteLine("4. Process Resource");
                Console.WriteLine("5. Display Farm Status");
                Console.WriteLine("6. Exit");
                Console.WriteLine();

                Console.WriteLine("Choose a FARMS option");
                Console.Write("> ");
                string option = Console.ReadLine();

                if (option == "1")
                {
                    DisplayBanner();
                    CreateFacility.CollectInput(Trestlebridge);
                }
                else if (option == "2")
                {
                    DisplayBanner();
                    PurchaseStock.CollectInput(Trestlebridge);
                }
                else if (option == "3")
                {
                    DisplayBanner();
                    PurchasePlants.CollectInput(Trestlebridge);
                }
                else if (option == "4")
                {
                    DisplayBanner();
                    ProcessResource.CollectInput(Trestlebridge);
                }
                else if (option == "5")
                {
                    DisplayBanner();
                    Console.WriteLine(Trestlebridge);
                    Console.WriteLine("\n\n\n");
                }
                else if (option == "6")
                {
                    Console.WriteLine("Today is a great day for farming");
                    break;
                }
                else
                {
                    Console.WriteLine($"Invalid option: {option}");
                }
                Console.WriteLine();
                Console.Write("Press Enter To Return To Main Menu");
                Console.ReadLine();
            }
        }