Exemplo n.º 1
0
        private ExecutionContext ProvisionExecutionContext(CancellationToken cancellationToken, string data)
        {
            var kv = new InMemoryKeyValueStore <string, object>();

            if (!string.IsNullOrWhiteSpace(data))
            {
                try
                {
                    var deserialized = JsonSerializer.Deserialize <Dictionary <string, string> >(data);
                    foreach (var(k, v) in deserialized)
                    {
                        kv.AddOrUpdate(k, v);
                    }
                }
                catch (Exception e)
                {
                    Trace.TraceError(e.ToString());
                    throw;
                }
            }
            else
            {
                Trace.TraceInformation("no data passed to execution context");
            }

            var scope   = _backgroundServices.CreateScope();
            var context = new ExecutionContext(scope, kv, cancellationToken);

            return(context);
        }