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); }
protected virtual void AddPersonInfo(PersonDelegate personDelegate) { }
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)); } ); }