public FlightPlan Post(FlightPlan p)
        {
            //check FP json validation validation
            bool segmentsIsValid        = false;
            bool initialLocationIsValid = false;

            if ((p.InitialLocation != null))
            {
                initialLocationIsValid = (p.InitialLocation.DateTime == null) || (p.InitialLocation.Latitude > 90) ||
                                         (p.InitialLocation.Latitude < -90) || (p.InitialLocation.Longitude > 180) ||
                                         (p.InitialLocation.Longitude < -180);
            }
            if ((p.Segments != null))
            {
                foreach (var seg in p.Segments)
                {
                    bool result = (seg.Latitude < -90) || (seg.Latitude > 180) ||
                                  (seg.Latitude < -90) || (seg.Longitude > 180) || (seg.TimespanSeconds <= 0);
                    segmentsIsValid = segmentsIsValid || result;
                }
            }

            bool isNull = (p.CompanyName == null) || (p.Passengers <= 0) || (p.Segments == null) || (p.InitialLocation == null) ||
                          initialLocationIsValid || segmentsIsValid;

            if (isNull == true)
            {
                throw new InvalidOperationException();
            }

            planModel.AddPlan(p);
            return(p);
        }