示例#1
0
        public void EditRecord()
        {
            Info();
            //DateTime dateArrival, dateDeparture;
            //string flightNumber, cityOfArrivval, cityOfDeparture, airline, terminal, portofArrival, portofDeparture;
            //int flightStatus;
            Console.WriteLine("Enter number index");
            int indx = int.Parse(Console.ReadLine());

            dateArrival     = airoport[indx].DateArrival;
            dateDeparture   = airoport[indx].DateDeparture;
            flightNumber    = airoport[indx].FlightNumber;
            cityOfArrivval  = airoport[indx].CityOfArrival;
            cityOfDeparture = airoport[indx].CityOfDeparture;
            airline         = airoport[indx].Airline;
            terminal        = airoport[indx].Terminal;
            portofArrival   = airoport[indx].PortOfArrival;
            portofDeparture = airoport[indx].PortOfDeparture;
            flightStatus    = (int)airoport[indx].Status;

            //var delim = new string('-', 233);
            string[] columns = { "Index".PadLeft(10),           "Flight number".PadLeft(18),     "Date and time of departure".PadLeft(31), "Date and time of arrival".PadLeft(31), "City of departure".PadLeft(20),
                                 "City of arrival".PadLeft(20), "Port of departure".PadLeft(20), "Port of arrival".PadLeft(20),            "Airline".PadLeft(16),                  "Terminal".PadLeft(18), "Flight status".PadLeft(18) };
Repeat:
            Console.Clear();
            Console.WriteLine(string.Join("|", columns));
            for (var info = indx; info <= indx; info++)
            {
                Scoop(info);
                //Console.WriteLine(delim);
                //Console.Write(string.Join('|', info).PadLeft(8));
                //Console.Write(string.Join('|', airoport[info].FlightNumber).PadLeft(20));
                //Console.Write(string.Join('|', airoport[info].DateDeparture).PadLeft(30));
                //Console.Write(string.Join('|', airoport[info].DateArrival).PadLeft(30));
                //Console.Write(string.Join('|', airoport[info].CityOfDeparture).PadLeft(20));
                //Console.Write(string.Join('|', airoport[info].CityOfArrival).PadLeft(20));
                //Console.Write(string.Join('|', airoport[info].PortOfDeparture).PadLeft(18));
                //Console.Write(string.Join('|', airoport[info].PortOfArrival).PadLeft(18));
                //Console.Write(string.Join('|', airoport[info].Airline).PadLeft(28));
                //Console.Write(string.Join('|', airoport[info].Terminal).PadLeft(12));
                //Console.Write(string.Join('|', airoport[info].Status).PadLeft(17));
                //Console.WriteLine();
            }
            for (int a = 0; a <= 3; a++)
            {
                Console.WriteLine();
            }


            Console.WriteLine("Enter number to edit column\n1)Edit date of arrival airplane\n2)Edit date of departure airplane\n3)Edit flight number\n4)Edit city of arrivval" +
                              "\n5)Edit city of departure\n6)Edit airline\n7)Edit terminal\n8)Edit port of arrival\n9)Edit port of departure\n10)Edit flight status\n11)Edit all columns\n12)Nothing");
            int editChoice = Convert.ToInt32(Console.ReadLine());

            //var editChoiceChar = editChoice.ToCharArray();
            switch (editChoice)
            {
            case 1:
                //AirportEditor airportEditor = new AirportEditor(EditDateArrival);
                //dateArrival = Convert.ToDateTime(airportEditor);
                Console.WriteLine("Enter date of arrival airplane\n Date format - {0} ", format);
                string arrivalDate = Console.ReadLine();
                dateArrival = DateTime.ParseExact(arrivalDate, format, CultureInfo.InvariantCulture, DateTimeStyles.None);
                EditAirport();
                goto Repeat;

            case 2:
                Console.WriteLine("Enter date of departure airplane\n Date format - {0} ", format);
                string departureDate = Console.ReadLine();
                dateDeparture = DateTime.ParseExact(departureDate, format, CultureInfo.InvariantCulture, DateTimeStyles.None);
                EditAirport();
                goto Repeat;

            case 3:
                Console.WriteLine("Enter flight number ");
                flightNumber = Console.ReadLine();
                EditAirport();
                goto Repeat;

            case 4:
                Console.WriteLine("Enter city of arrivval ");
                cityOfArrivval = Console.ReadLine();
                EditAirport();
                goto Repeat;

            case 5:
                Console.WriteLine("Enter city of departure ");
                cityOfDeparture = Console.ReadLine();
                EditAirport();
                goto Repeat;

            case 6:
                Console.WriteLine("Enter airline ");
                airline = Console.ReadLine();
                EditAirport();
                goto Repeat;

            case 7:
                Console.WriteLine("Enter terminal ");
                terminal = Console.ReadLine();
                EditAirport();
                goto Repeat;

            case 8:
                Console.WriteLine("Enter port of arrival ");
                portofArrival = Console.ReadLine();
                EditAirport();
                goto Repeat;

            case 9:
                Console.WriteLine("Enter port of departure");
                portofDeparture = Console.ReadLine();
                EditAirport();
                goto Repeat;

            case 10:
                Console.WriteLine("Enter flight status:\n1)check in\n2)gate closed\n3)arrived\n4)departed at\n5)unknown\n6)canceled" +
                                  "\n7)expected at\n8)delayed\n9)in flight");
                flightStatus = Convert.ToInt32(Console.ReadLine());
                EditAirport();
                goto Repeat;

            case 11:
                Add();
                EditAirport();
                View();
                break;

            case 12:
                View();
                break;
            }
            void EditAirport()
            {
                airoport[indx] = new Airport
                                 (
                    dateArrival,
                    dateDeparture,
                    flightNumber,
                    cityOfArrivval,
                    cityOfDeparture,
                    airline,
                    terminal,
                    portofArrival,
                    portofDeparture,
                    flightStatus
                                 );
            }
        }
        public void Working()
        {
            Records();
            AirportPropEditor airportEdit = null;

            airportEdit += EditAirline;
            airportEdit += EditCityOfArrivval;
            airportEdit += EditCityOfDeparture;
            airportEdit += EditDateArrival;
            airportEdit += EditDateDeparture;
            airportEdit += EditFlightNumber;
            airportEdit += EditFlightStatus;
            airportEdit += EditPortofArrival;
            airportEdit += EditPortofDeparture;
            airportEdit += EditTerminal;

            while (true)
            {
                Console.Clear();
                Console.WriteLine(new string('-', 50));
                UserChoice chooise = PromptWhatToDo();

                switch (chooise)
                {
                case UserChoice.Information:
                {
                    DumpAirportList(list);
                    break;
                }

                case UserChoice.CreateRecords:
                {
                    Console.WriteLine("How many airplane you want add?");
                    int numAirplane = int.Parse(Console.ReadLine());
                    for (int c = 0; c < numAirplane; c++)
                    {
                        var airport = new Airport();
                        airportEdit(airport);
                        list.Add(airport);
                    }
                    break;
                }

                case UserChoice.EditRecords:
                {
                    Airport aira = GetEditToEdit(list);
                    airportEdit(aira);
                    break;
                }

                case UserChoice.EditSpecificProp:
                {
                    Airport ai = GetEditToEdit(list);
                    Console.WriteLine("Choose what to edit (enter number):");
                    int num = 1;
                    foreach (string availableChoiseName in Enum.GetNames(typeof(SelectedAirportProp)))
                    {
                        Console.WriteLine("{0} {1}", num++, availableChoiseName);
                    }

                    SelectedAirportProp toEdit = Enum.Parse <SelectedAirportProp>(Console.ReadLine());

                    switch (toEdit)
                    {
                    case SelectedAirportProp.Airline:
                    {
                        EditAirline(ai);
                        break;
                    }

                    case SelectedAirportProp.CityOfArrivval:
                    {
                        EditCityOfArrivval(ai);
                        break;
                    }

                    case SelectedAirportProp.CityOfDeparture:
                    {
                        EditCityOfDeparture(ai);
                        break;
                    }

                    case SelectedAirportProp.DateArrival:
                    {
                        EditDateArrival(ai);
                        break;
                    }

                    case SelectedAirportProp.DateDeparture:
                    {
                        EditDateDeparture(ai);
                        break;
                    }

                    case SelectedAirportProp.FlightNumber:
                    {
                        EditFlightNumber(ai);
                        break;
                    }

                    case SelectedAirportProp.FlightStatus:
                    {
                        EditFlightStatus(ai);
                        break;
                    }

                    case SelectedAirportProp.PortofArrival:
                    {
                        EditPortofArrival(ai);
                        break;
                    }

                    case SelectedAirportProp.PortofDeparture:
                    {
                        EditPortofDeparture(ai);
                        break;
                    }

                    case SelectedAirportProp.Terminal:
                    {
                        EditTerminal(ai);
                        break;
                    }
                    }

                    break;
                }

                case UserChoice.SearchRecords:
                {
                    SearchRecord();
                    break;
                }

                case UserChoice.DeleteRecords:
                {
                    DeleteRecord();
                    break;
                }
                }
            }
        }