/// <summary> /// Adds the distance for two buildings in the database /// </summary> /// <param name="db">The database context</param> /// <param name="building1">The first building</param> /// <param name="building2">The second building</param> private void AddBuildingDistances(UofTDataContext db, Building building1, Building building2) { Console.WriteLine("Getting data " + building1.Address + " -> " + building2.Address); // Getting distance info (like walk durations, etc) BuildingDistanceCalculator calculator = new BuildingDistanceCalculator(); DataModels.BuildingDistance buildingDistance = calculator.GetInfoBetweenBuildings("walking", building1.Address, building2.Address); BuildingDistance newBuildingDistance = new BuildingDistance() { Building = building1, Building1 = building2, WalkingDistance = buildingDistance.WalkingDistance, WalkingDuration = buildingDistance.WalkDuration, CyclingDistance = buildingDistance.CyclingDistance, CyclingDuration = buildingDistance.CyclingDuration, TransitDistance = buildingDistance.PublicTransitDistance, TransitDuration = buildingDistance.PublicTransitDuration, DrivingDistance = buildingDistance.DrivingDistance, DrivingDuration = buildingDistance.DrivingDuration }; Console.WriteLine("Inserting new data " + building1.BuildingCode + " -> " + building2.BuildingCode); db.BuildingDistances.InsertOnSubmit(newBuildingDistance); db.SubmitChanges(); }
/// <summary> /// Updates the distances between any two buildings in the database /// </summary> /// <param name="db">The database context</param> /// <param name="existingDistances">The existing distances</param> private void UpdateBuildingDistances(UofTDataContext db, BuildingDistance existingDistances) { Building building1 = existingDistances.Building; Building building2 = existingDistances.Building1; Console.WriteLine("Attempting to update data " + building1.BuildingCode + " -> " + building2.BuildingCode); // Getting distance info (like walk durations, etc) BuildingDistanceCalculator calculator = new BuildingDistanceCalculator(); DataModels.BuildingDistance buildingDistance = calculator.GetInfoBetweenBuildings("walking", building1.Address, building2.Address); // Making changes to the data existingDistances.WalkingDistance = buildingDistance.WalkingDistance; existingDistances.WalkingDuration = buildingDistance.WalkDuration; existingDistances.CyclingDistance = buildingDistance.CyclingDistance; existingDistances.CyclingDuration = buildingDistance.CyclingDuration; existingDistances.TransitDistance = buildingDistance.PublicTransitDistance; existingDistances.TransitDuration = buildingDistance.PublicTransitDuration; existingDistances.DrivingDistance = buildingDistance.DrivingDistance; existingDistances.DrivingDuration = buildingDistance.DrivingDuration; db.SubmitChanges(); Console.WriteLine("Successful! Has updated data for " + building1.BuildingCode + " -> " + building2.BuildingCode); }