namespace ShareeBike.Repository.Exception { public class NoGPSDataException : InvalidResponseException { /// COPRI response status. public const string RETURNBIKE_FAILURE_STATUS_MESSAGE_UPPERCASE = "FAILURE 2245: NO GPS DATA, STATE CHANGE FORBIDDEN."; /// Prevents invalid use of exception. private NoGPSDataException() : base(typeof(NoGPSDataException).Name) { } public static bool IsNoGPSData(string responseState, out NoGPSDataException exception) { // Check if there are too many bikes requested/ booked. if (!responseState.Trim().ToUpper().StartsWith(RETURNBIKE_FAILURE_STATUS_MESSAGE_UPPERCASE)) { exception = null; return false; } exception = new NoGPSDataException(); return true; } } }