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); }
public bool UpdateCar(String id, String vin, int repairingsCount, int driveWeight, bool searched, DateTime stkEndDate, DateTime ekEndDate) { AddressedID searchObj = new AddressedID(); searchObj.ID = id; Block <AddressedID> block = IDCarTree.Find(searchObj); if (block != null) { Record <AddressedID>[] records = block.RecordsArray.Records; for (int i = 0; i < records.Length; i++) { if (records[i].Data.CompareTo(searchObj) == 0) { Block <Vehicle> vehicleBlock = CarHeapFile.FindBlock(records[i].Data.Address); Vehicle vehicle = null; int recordIndex = 0; for (int j = 0; j < vehicleBlock.RecordsArray.Records.Length; j++) { if (vehicleBlock.RecordsArray.Records[j].Data.ID.Equals(id)) { vehicle = vehicleBlock.RecordsArray.Records[j].Data; recordIndex = j; break; } } vehicle.RepairingsCount = repairingsCount; vehicle.DriveWeight = driveWeight; vehicle.Searched = searched; vehicle.STKEndDate = stkEndDate; vehicle.EKEndDate = ekEndDate; vehicleBlock.RecordsArray.Records[recordIndex] = new Record <Vehicle>(vehicle); CarHeapFile.WriteBlock(vehicleBlock); return(true); } } } return(false); }
private Vehicle GetCarByIDAsObject(String id) { AddressedID searchObj = new AddressedID(); searchObj.ID = id; Block <AddressedID> block = IDCarTree.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 DescribeCarIDDBStructure() { return(IDCarTree.DescribeFileStructure()); }
public void Close() { IDCarTree.CloseFileInteraction(); VINCarTree.CloseFileInteraction(); CarHeapFile.CloseFileInteraction(); }