public async Task ProcessHandleFirewallRuleRequest(HandleFirewallRuleParams canHandleRuleParams, RequestContext <HandleFirewallRuleResponse> requestContext) { Func <Task <HandleFirewallRuleResponse> > requestHandler = () => { HandleFirewallRuleResponse response = new HandleFirewallRuleResponse(); if (!MssqlProviderId.Equals(canHandleRuleParams.ConnectionTypeId, StringComparison.OrdinalIgnoreCase)) { response.Result = false; response.ErrorMessage = SR.FirewallRuleUnsupportedConnectionType; } else { FirewallErrorParser parser = new FirewallErrorParser(); FirewallParserResponse parserResponse = parser.ParseErrorMessage(canHandleRuleParams.ErrorMessage, canHandleRuleParams.ErrorCode); response.Result = parserResponse.FirewallRuleErrorDetected; response.IpAddress = parserResponse.BlockedIpAddress != null?parserResponse.BlockedIpAddress.ToString() : string.Empty; } return(Task.FromResult(response)); }; await HandleRequest(requestHandler, null, requestContext, "HandleCreateFirewallRuleRequest"); }