Example #1
0
        public OrdersMutation(IOrderService orders)
        {
            Name = "Mutation";
            Field <OrderType>(
                "createOrder",
                arguments: new QueryArguments(
                    new QueryArgument <NonNullGraphType <OrderCreateInputType> > {
                Name = "order"
            }),
                resolve: context => PersonDelegate.CreatePerson(context, orders)
                );

            Field <OrderType>(
                "updateOrderStatus",
                arguments: new QueryArguments(
                    new QueryArgument <NonNullGraphType <StringGraphType> >
            {
                Name = "id"
            },
                    new QueryArgument <NonNullGraphType <OrderStatusesEnum> >
            {
                Name = "status"
            }
                    ),
                resolve: context =>
            {
                var orderID = context.GetArgument <string>("id");
                var status  = context.GetArgument <OrderStatuses>("status");

                return(orders.StartAsync(orderID, status));
            });
        }
        static void Main(string[] args)
        {
            List<string> personInfo = new List<string>() { "John", "Los Angeles", "Writer" };

            PersonDelegate del = new PersonDelegate(getName);
            del += getCity;
            del += getJob;

            del(personInfo);
        }
Example #3
0
 protected virtual void AddPersonInfo(PersonDelegate personDelegate)
 {
 }
Example #4
0
 protected virtual void OnProcessPersonEvent(PersonDelegate personDelegate)
 {
     personDelegate?.Invoke();
 }
        public PersonsMutation(IPersonService service)
        {
            Name        = "Mutation";
            Description = "Persons mutation";

            Field <PersonType>(
                "createPerson",
                arguments: new QueryArguments(
                    new QueryArgument <NonNullGraphType <PersonCreateInputType> >
            {
                Name = "person"
            }
                    ),
                resolve: context => PersonDelegate.CreatePerson(context, service)
                // for some reason the code below does not properly map the phones enum
                //    context =>
                //{
                //    // var personInput = (context.Arguments["person"] as Dictionary<string, object>);
                //    // ((context.Arguments["person"] as Dictionary<string, object>)["phoneNumbers"] as List<object>)
                //
                //    var personInput = context.GetArgument<Person>("person");

                //    var person = new Person()
                //    {
                //        Name = personInput.Name,
                //        LastName = personInput.LastName,
                //        Status = personInput.Status
                //    };
                //    person.PhoneNumbers = personInput.PhoneNumbers.Select(
                //        n => new PhoneNumber()
                //        {
                //            Owner = person,
                //            Number = n.Number,
                //            Description = n.Description ?? string.Empty,
                //            PhoneNumberClass = n.PhoneNumberClass
                //        }).ToList();

                //    return service.CreateAsync(person);
                //}
                );

            Field <PersonType>(
                "updatePersonStatus",
                arguments: new QueryArguments(
                    new QueryArgument <NonNullGraphType <IntGraphType> >
            {
                Name = "id"
            },
                    new QueryArgument <NonNullGraphType <PersonStatusEnumType> >
            {
                Name = "status"
            }
                    ),
                resolve: context =>
            {
                var personId = context.GetArgument <int>("id");
                var status   = context.GetArgument <PersonStatusEnum>("status");

                return(service.UpdateAsync(personId, status));
            }
                );
        }