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(); } }