private static HttpMessageState ConfigureSendOrderState(HttpMessageState s, Log log, Random rng, string endPoint, string user) { var orderMessage = OrderMessage.GenerateRandomMessage("-1", rng); s.Name = user + ", HttpMessageState::sendOrder"; s.Uri = endPoint + "/post-order"; s.Message = orderMessage; s.SetupMessage = (msg) => { orderMessage.token = s.Context.Resolve <string>(UserTokenId); orderMessage.Randomize(s.Context.Resolve <Random>()); s.Context.Register(MessageCountId, s.Context.Resolve <int>(MessageCountId) + 1); log?.Put(OutputLevel.Info, s.Name, "sending order with " + orderMessage.items.Length + " items."); }; s.ProcessResponse = async(response) => { if (response.IsSuccessStatusCode) { var message = await response.Content.ReadAsStringAsync(); if (!string.IsNullOrEmpty(message)) { var serverResponse = JsonSerializer.Deserialize <ServerResponse>(message); s.Context.Register(AckCountId, s.Context.Resolve <int>(AckCountId) + 1); /*if (serverResponse.timeStamp == orderMessage.timeStamp) * { * s.Context.Register(AckCountId, s.Context.Resolve<int>(AckCountId) + 1); * }*/ } else { LogError(log, s.Context, s.Name + " send order received no ack"); } } else { LogError(log, s.Context, s.Name + " send order with " + orderMessage.items.Length + " items, received error code." + " - " + response.ReasonPhrase); } }; s.SendMethod = RestMethod.POST; return(s); }