public async Task <MiddlewareData> InvokeAsync(MiddlewareData data, IMiddlewaresChain chain) { var commandInfo = await _commandParser.ParseAsync(data); var newData = data.UpdateFeatures(f => f.Add <CommandFeature>(new CommandFeature(commandInfo))); return(await chain.NextAsync(newData)); }