/// <summary> /// Handle current X-Road operation. /// </summary> protected override void HandleRequest(XRoadContextClassic context) { if (context.HttpContext.Request.InputStream.Length == 0) { throw XRoadException.InvalidQuery("Empty request content"); } context.Request.LoadRequest(context.HttpContext, StoragePath.GetValueOrDefault(Path.GetTempPath()), supportedProtocols); if (context.Request.Protocol == null && context.Request.MetaServiceMap == null) { var supportedProtocolsString = string.Join(", ", supportedProtocols.Select(x => $@"""{x.Name}""")); throw XRoadException.InvalidQuery($"Could not detect X-Road message protocol version from request message. Adapter supports following protocol versions: {supportedProtocolsString}."); } context.Response.Copy(context.Request); context.ServiceMap = context.Request.MetaServiceMap; OnRequestLoaded(context); InvokeServiceMethod(context); SerializeXRoadResponse(context); }