public async Task <TFact> Fact <TFact>(TFact prototype) where TFact : class { if (prototype == null) { throw new ArgumentNullException(nameof(prototype)); } var graph = factManager.Serialize(prototype); await factManager.Save(graph, default(CancellationToken)); return(factManager.Deserialize <TFact>(graph, graph.Last)); }