示例#1
0
 public static bool Read(out ParkeringsPlats[] rutor)
 {
     try
     {
         string[]            vehicles          = System.IO.File.ReadAllLines(path);
         string              regNum            = string.Empty;
         string              type              = string.Empty;
         DateTime            dateTime          = DateTime.Now;
         int                 size              = 0;
         int                 parkingCellNumber = 0;
         Parkering.Parkering parkering         = new Parkering.Parkering();
         foreach (string vehicle in vehicles)
         {
             string[] tempVehicle = vehicle.Split(',');
             if (vehicle.Length > 0)
             {
                 try
                 {
                     parkingCellNumber = Int32.Parse(tempVehicle[0]);
                     regNum            = tempVehicle[1];
                     type     = tempVehicle[2];
                     size     = Int32.Parse(tempVehicle[3]);
                     dateTime = DateTime.Parse(tempVehicle[4]);
                 }
                 catch (FormatException)
                 {
                     Menu.PrintError($"something went wrong while reading from {path} ");
                     rutor = null;
                     return(false);
                 }
                 Factory   factory = new Factory();
                 Singelton S       = Singelton.Instance;
                 factory.onCreate(regNum, dateTime, type, size);
                 parkering.Park(S.Return_Vehicle, parkingCellNumber);
             }
         }
         rutor = parkering.Overview();
         if (rutor.Length <= 0)
         {
             return(false);
         }
         return(true);
     }
     catch (FileNotFoundException ex)
     {
         Console.WriteLine(ex);
         rutor = null;
         return(false);
     }
     catch (DirectoryNotFoundException ex)
     {
         Console.WriteLine(ex);
         rutor = null;
         return(false);
     }
 }
示例#2
0
        static void Main(string[] args)
        {
            Console.InputEncoding  = Encoding.Unicode;
            Console.OutputEncoding = Encoding.Unicode;
            Singelton S = Singelton.Instance;

            Parkering.Parkering parkering = new Parkering.Parkering();

            Car           car1 = new Car("car1");
            Car           car2 = new Car("car2");
            Car           car3 = new Car("жэф");
            MC            mc1  = new MC("mc1");
            MC            mc2  = new MC("mc2");
            MC            mc3  = new MC("mc3");
            CustomVehicle cv1  = new CustomVehicle("cv1", "cykel", 10);
            CustomVehicle cv2  = new CustomVehicle("cv2", "cykel", 10);
            CustomVehicle cv3  = new CustomVehicle("cv3", "cykel", 10);
            CustomVehicle cv4  = new CustomVehicle("cv4", "scooter", 35);
            CustomVehicle cv5  = new CustomVehicle("фый", "skateboard", 5);

            parkering.Park(car1, 0);
            parkering.Park(car2, 98);
            parkering.Park(car3, 99);
            parkering.Park(mc1, 5);
            parkering.Park(mc2, 15);
            parkering.Park(mc3, 16);
            parkering.Park(cv1, 17);
            parkering.Park(cv2, 18);
            parkering.Park(cv3, 19);
            parkering.Park(cv4, 20);
            parkering.Park(cv5, 21);

            while (true)
            {
                int x = Menu.MenuPrint();
                if (x >= 0)
                {
                    switch (x)
                    {
                    case 1:
                        if (Menu.MenuPark())
                        {
                            int userChoise = Menu.ParkAt();
                            if (userChoise == 1)
                            {
                                parkering.Park(S.Return_Vehicle);
                            }
                            if (userChoise == 2)
                            {
                                int spot = Menu.ChooseASpot();
                                parkering.Park(S.Return_Vehicle, spot);
                            }
                        }
                        break;

                    case 2:
                        if (Menu.MenuRemove(out string regNum))
                        {
                            parkering.Remove(regNum);
                        }
                        break;

                    case 3:
                        if (Menu.MenuMove(out regNum, out int index))
                        {
                            string moved = parkering.Move(regNum, index, out string errorMove);
                            if (errorMove.Equals(""))
                            {
                                Menu.PrintGreen(moved);
                            }
                            else
                            {
                                Menu.PrintError(errorMove);
                            }
                        }
                        break;

                    case 4:
                        if (Menu.RegNumCheck(out string userInput, out string error))
                        {
                            int found = parkering.Search(userInput);
                            Menu.PrintGreen($"{userInput} was found at {found}");
                        }
                        else
                        {
                            Menu.PrintError(error);
                        }
                        break;

                    case 5:
                        if (Menu.MenuIndex(out int output))
                        {
                            if (output >= 0 && output < 100)
                            {
                                Menu.PrintGreen(parkering[output].ToString());
                            }
                            else
                            {
                                Menu.PrintError($"Spot {output}, doesnt exsist");
                            }
                        }
                        break;

                    case 6:
                        if (parkering.Overview().Length > 0)
                        {
                            parkering.PrintOverview();
                        }
                        parkering.Overview();
                        break;

                    case 7:
                        parkering.Read();
                        break;

                    case 8:
                        parkering.Write();
                        break;

                    case 9:
                        parkering.SortMC();
                        break;

                    case 10:
                        parkering.Sort();
                        break;

                    default:
                        Console.WriteLine("Default case");
                        break;
                    }
                }
                else
                {
                    Menu.PrintError("Provide a digit between 1-10");
                }
            }
        }