Esempio n. 1
0
        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
            }));
        }
Esempio n. 3
0
        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
            }));
        }