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); }