public EndDataOfFLightPlan GetEndDataOfPlan(string id)
        {
            EndDataOfFLightPlan endPlan = new EndDataOfFLightPlan();
            FlightPlan          flPLan  = GetFlightPlanById(id);

            endPlan.CompanyName     = flPLan.Company_Name;
            endPlan.StartLatitude   = flPLan.Initial_Location.Latitude;
            endPlan.StartLongitude  = flPLan.Initial_Location.Longitude;
            endPlan.TakeOffTime     = flPLan.Initial_Location.Date_Time;
            endPlan.NumOfPassengers = flPLan.Passengers;

            LinkedList <Segment> listOfSeg = flPLan.Segments;

            endPlan.EndLatitude  = endPlan.StartLatitude;
            endPlan.EndLongitude = endPlan.StartLongitude;
            endPlan.LandTime     = endPlan.TakeOffTime;
            foreach (Segment item in listOfSeg)
            {
                endPlan.EndLatitude  = item.Latitude;
                endPlan.EndLongitude = item.Longitude;
                endPlan.LandTime     = endPlan.LandTime.AddSeconds(item.TimeSpan_Seconds);
            }
            //endPlan.Segments = ListOfSmallerSegments(listOfSeg, id);
            return(endPlan);
        }
        /* Sets all properties to the EndOfFlightPlan object. */
        private EndDataOfFLightPlan RunSettingEndObject(EndDataOfFLightPlan endPlan,
                                                        FlightPlan flPLan)
        {
            endPlan.CompanyName     = flPLan.Company_Name;
            endPlan.StartLatitude   = flPLan.Initial_Location.Latitude;
            endPlan.StartLongitude  = flPLan.Initial_Location.Longitude;
            endPlan.TakeOffTime     = flPLan.Initial_Location.Date_Time;
            endPlan.NumOfPassengers = flPLan.Passengers;

            LinkedList <Segment> listOfSeg = flPLan.Segments;

            endPlan.EndLatitude  = endPlan.StartLatitude;
            endPlan.EndLongitude = endPlan.StartLongitude;
            endPlan.LandTime     = endPlan.TakeOffTime;

            foreach (Segment item in listOfSeg)
            {
                endPlan.EndLatitude  = item.Latitude;
                endPlan.EndLongitude = item.Longitude;
                endPlan.LandTime     = endPlan.LandTime.AddSeconds(item.TimeSpan_Seconds);
                endPlan.SegmentsPath.Add(item);
            }

            return(endPlan);
        }
        /*
         * Returns a task of the type
         * EndDataOfFlightPlan for the clients
         * purposes.
         */
        public Task <EndDataOfFLightPlan> GetEndDataOfPlan(string id, Server serverWithId)
        {
            Server server = serverWithId;
            EndDataOfFLightPlan endPlan = new EndDataOfFLightPlan();

            endPlan.SegmentsPath = new List <Segment>();
            FlightPlan flPLan = GetFlightPlanById(id);

            if (flPLan == FlightPlan.NullFlightPlan)
            {
                FlightPlanRequestHandler planRequestHandler = new FlightPlanRequestHandler();

                if (server != Server.nullServer)
                {
                    flPLan = planRequestHandler.GetFlightPlan(server, id).Result;
                }
            }

            return(Task.Run(() =>
            {
                return RunSettingEndObject(endPlan, flPLan);
            }));
        }