private Task Persist(MethodEnum method, Try <Type> maybeRoot, HttpContext context) { if (maybeRoot.IsFailure) { return(Task.CompletedTask); } var rootType = maybeRoot.Result; var array = Utility.ParseObject(Serialization, rootType.MakeArrayType(), context.Request.Body, false, Locator, context); if (array.IsFailure) { return(Task.CompletedTask); } var arg = (object[])array.Result; return(Converter.PassThrough <PersistAggregateRoot, PersistAggregateRoot.Argument <object> >( context, new PersistAggregateRoot.Argument <object> { RootName = rootType.FullName, ToInsert = method == MethodEnum.Insert ? arg : null, ToUpdate = method == MethodEnum.Update ? CreateKvMethod.MakeGenericMethod(rootType).Invoke(this, new[] { arg }) : null, ToDelete = method == MethodEnum.Delete ? arg : null })); }
private Stream Persist(MethodEnum method, Either <Type> maybeRoot, Stream data) { if (maybeRoot.IsFailure) { return(maybeRoot.Error); } var rootType = maybeRoot.Result; var array = Utility.ParseObject(Serialization, Either <Type> .Succes(rootType.MakeArrayType()), data, false, Locator); if (array.IsFailure) { return(array.Error); } var arg = (object[])array.Result; return (Converter.PassThrough <PersistAggregateRoot, PersistAggregateRoot.Argument <object> >( new PersistAggregateRoot.Argument <object> { RootName = rootType.FullName, ToInsert = method == MethodEnum.Insert ? arg : null, ToUpdate = method == MethodEnum.Update ? CreateKvMethod.MakeGenericMethod(rootType).Invoke(this, new[] { arg }) : null, ToDelete = method == MethodEnum.Delete ? arg : null })); }
private Stream Persist(MethodEnum method, Type root, Stream data) { var array = (object[])Utility.ParseObject(Serialization, root.MakeArrayType(), data, false, Locator); return (Converter.PassThrough <PersistAggregateRoot, PersistAggregateRoot.Argument <object> >( new PersistAggregateRoot.Argument <object> { RootName = root.FullName, ToInsert = method == MethodEnum.Insert ? array : null, ToUpdate = method == MethodEnum.Update ? CreateKvMethod.MakeGenericMethod(root).Invoke(this, new[] { array }) : null, ToDelete = method == MethodEnum.Delete ? array : null })); }