public bool AddCar(String id, String vin, int repairingsCount, int driveWeight, bool searched,
                           DateTime stkEndDate, DateTime ekEndDate)
        {
            Vehicle vehicle = new Vehicle(id, vin, repairingsCount,
                                          driveWeight,
                                          searched, stkEndDate, ekEndDate
                                          );

            int address = CarHeapFile.Add(vehicle);

            bool result = IDCarTree.Add(new AddressedID(vehicle.ID, vehicle.VINMaxLength, address));

            result &= VINCarTree.Add(new AddressedID(vehicle.VIN, vehicle.VINMaxLength, address));
            return(result);
        }
        private Vehicle GetCarByVINAsObject(String vin)
        {
            AddressedID searchObj = new AddressedID();

            searchObj.ID = vin;
            Block <AddressedID> block = VINCarTree.Find(searchObj);

            if (block != null)
            {
                Record <AddressedID>[] records = block.RecordsArray.Records;

                foreach (Record <AddressedID> record in records)
                {
                    if (record.Data.CompareTo(searchObj) == 0)
                    {
                        return(CarHeapFile.FindData(record.Data.Address));
                    }
                }
            }
            return(null);
        }
        public void GenerateData(int addCount)
        {
            Random random = new Random();

            for (int i = 0; i < addCount; i++)
            {
                int randomNumber = random.Next(1, addCount * 100);

                Vehicle vehicle = new Vehicle("ID" + i, "VIN" + (addCount - i), randomNumber % 4,
                                              randomNumber,
                                              false, DateTime.Now.AddDays(randomNumber), DateTime.Now.AddDays(randomNumber)
                                              );

                int address = CarHeapFile.Add(vehicle);

                IDCarTree.Add(new AddressedID(vehicle.ID, vehicle.VINMaxLength, address));
                VINCarTree.Add(new AddressedID(vehicle.VIN, vehicle.VINMaxLength, address));
            }
            File.WriteAllText("C:/Users/User/source/repos/CarDrivingDataManagementTest/idCarTreeLevelOrder.txt",
                              IDCarTree.TraceLevelOrder());
            File.WriteAllText("C:/Users/User/source/repos/CarDrivingDataManagementTest/vinCarTreeLevelOrder.txt",
                              VINCarTree.TraceLevelOrder());
        }
 public String DescribeCarVINDBStructure()
 {
     return(VINCarTree.DescribeFileStructure());
 }
 public void Close()
 {
     IDCarTree.CloseFileInteraction();
     VINCarTree.CloseFileInteraction();
     CarHeapFile.CloseFileInteraction();
 }