/// <summary>
        /// Constructs an instance of ExtendedCalculator. By constructing
        /// an object of type ExtendedCalculator, you automatically initiate
        /// the calculation of a path between two points, according to a given
        /// planning mode (shortest, quickest, etc.).
        /// </summary>
        public ExtendedCalculator(double range, Battery battery,
                                  int fromID, int toID)
        {
            LocationCtr locCtr = new LocationCtr();
            this.From = locCtr.FindLocation(fromID);
            this.To = locCtr.FindLocation(toID);
            Console.WriteLine("[DEBUG MESSAGE]: ExtendedCalculator() Start ");

            // Initializes graph field along with Distance and Path properties.
            // Finds the most compatible locations based on the given coordinates
            // and initializes the From and To properties with the existing locations.
            InitializeCalculator(range, 10, 5, 10, 5);

            // Initialize the graph used for calculating the path
            // TODO: Implement planningMode. batteryType irrelevant here, it's not used?
            GenerateGraph("plan", battery.BatteryType);

            try
            {
                CalculatePath(From, To);
            }
            catch (Exception e)
            {
                Console.WriteLine("[DEBUG MESSAGE]: Error occured in CalculatePath(): {0}", e.Message);
            }
            Console.WriteLine("[DEBUG MESSAGE]: ExtendedCalculator() End");
        }
 public void AddBatteriesToStation(Battery battery, BatteryStation batteryStation)
 {
     this.locationRepository.AddBatteriesToStation(batteryStation, battery);
     this.locationRepository.Save();
 }
 public void RemoveBatteriesFromStation(BatteryStation batteryStation, Battery battery)
 {
     this.locationRepository.RemoveBatteriesFromStation(batteryStation, battery);
     this.locationRepository.Save();
 }
 public void InsertBattery(Battery battery)
 {
     this.context.Batteries.Add(battery);
 }
 public void UpdateBattery(Battery battery)
 {
     this.context.Entry(battery).State = EntityState.Modified;
 }
 public void UpdateBattery(Battery battery)
 {
     controller.UpdateBattery(battery);
 }
 public void AddBatteriesToStation(Battery battery, BatteryStation batteryStation)
 {
     controller.AddBatteriesToStation(battery, batteryStation);
 }
 private int GetIndexOfBatteryShift(Battery foundBattery, List<int> path)
 {
     int index = 0;
     bool found = false;
     for (int i = 0; i < path.Count && !found; i++)
     {
         // Find the batterystation with the matching ID
         if (path.ElementAt(i) == foundBattery.BatteryStationID)
         {
             index = i;
             found = true;
         }
     }
     return index;
 }
 public void RemoveBatteriesFromStation(BatteryStation batteryStation, Battery battery)
 {
     controller.RemoveBatteriesFromStation(batteryStation, battery);
 }
        public Battery InsertBattery(DateTime? date, double percentCharged, int batteryTypeID, int serialID)
        {
            Battery battery = new Battery
            {
                Date = date,
                PercentCharged = percentCharged,
                BatteryTypeID = batteryTypeID,
            };

            this.batteryRepository.InsertBattery(battery);
            this.batteryRepository.Save();

            return battery;
        }
 public void UpdateBattery(Battery battery)
 {
     this.batteryRepository.UpdateBattery(battery);
     this.batteryRepository.Save();
 }
 public void AddBatteriesToStation(BatteryStation batteryStation, Battery battery)
 {
     batteryStation.Batteries.Add(battery);
     this.context.Entry(batteryStation).State = EntityState.Modified;
 }
 public void RemoveBatteriesFromStation(BatteryStation batteryStation, Battery battery)
 {
     batteryStation.Batteries.Remove(battery);
     this.context.Entry(batteryStation).State = EntityState.Modified;
 }