public IActionResult Logoff(SNWLLogoffRequest model) { SNWLLogoffReplyXMLResponse responseModel; if (!ModelState.IsValid) { return(new ObjectResult(ResponseHelper.Logoff.InvalidOrMissingCGIParamResponse())); } switch (_stateProvider.LogoffReplyCode) { case ResponseHelper.Logoff.LOGOFF_SUCCEEDED: responseModel = ResponseHelper.Logoff.LogoffSucceededResponse(); break; case ResponseHelper.Logoff.INVALID_SESSION_ID: responseModel = ResponseHelper.Logoff.InvalidSessionIDResponse(); break; case ResponseHelper.Logoff.INVALID_OR_MISSING_PARAM: responseModel = ResponseHelper.Logoff.InvalidOrMissingCGIParamResponse(); break; case ResponseHelper.Logoff.INVALID_HMAC: responseModel = ResponseHelper.Logoff.InvalidHMACResponse(); break; default: case ResponseHelper.Logoff.INTERNAL_ERROR: responseModel = ResponseHelper.Logoff.InternalErrorResponse(); break; } // local bookkeeping _stateProvider.ProcessLogoutRequest(model); return(new ObjectResult(responseModel)); }