/// <summary>
        /// Deletes routes from project collection.
        /// </summary>
        /// <param name="deletingRoutes">List of deleting routes.</param>
        private void _DeleteRoutes(IList <Route> deletingRoutes)
        {
            AppData.IDataObjectCollection <Route> routes = DataKeeper.Routes;

            // store route relative objects
            List <Driver>  deletingDrivers  = new List <Driver>();
            List <Vehicle> deletingVehicles = new List <Vehicle>();

            // remove routes
            for (int index = 0; index < deletingRoutes.Count; ++index)
            {
                Route route = deletingRoutes[index];

                Driver driver = route.Driver;
                if (!_IsObjectPresentInCollection(driver, deletingDrivers))
                {
                    deletingDrivers.Add(driver);
                }

                Vehicle vehicle = route.Vehicle;
                if (!_IsObjectPresentInCollection(vehicle, deletingVehicles))
                {
                    deletingVehicles.Add(vehicle);
                }

                routes.Remove(route);
            }

            // remove drivers
            _DeleteObjects(deletingDrivers, DataKeeper.Project.Drivers);

            // remove vehicles
            _DeleteObjects(deletingVehicles, DataKeeper.Project.Vehicles);
        }
 /// <summary>
 /// Deletes objects from project collection.
 /// </summary>
 /// <param name="deleteingObjects">List of deleting objects.</param>
 /// <param name="objectCollection">Project object collection.</param>
 private void _DeleteObjects <T>(IList <T> deleteingObjects, AppData.IDataObjectCollection <T> objectCollection)
     where T : AppData.DataObject
 {
     for (int index = 0; index < deleteingObjects.Count; ++index)
     {
         objectCollection.Remove(deleteingObjects[index]);
     }
 }