public BanicoMutation( ISectionRepository sectionRepository, ISectionItemRepository sectionItemRepository, IContentItemRepository contentItemRepository ) { Name = "BanicoMutation"; Field <SectionType>( "addSection", arguments: new QueryArguments( // <SectionInputType> new QueryArgument <NonNullGraphType <SectionInputType> > { Name = "section" } ), resolve: context => { var section = context.GetArgument <Section>("section"); return(sectionRepository.Add(section)); }); Field <SectionItemType>( "addSectionItem", arguments: new QueryArguments( // <SectionInputType> new QueryArgument <NonNullGraphType <SectionItemInputType> > { Name = "sectionItem" } ), resolve: context => { var sectionItem = context.GetArgument <SectionItem>("sectionItem"); return(sectionItemRepository.Add(sectionItem)); }); Field <ContentItemType>( "addContentItem", arguments: new QueryArguments( new QueryArgument <NonNullGraphType <ContentItemInputType> > { Name = "contentItem" } ), resolve: context => { var contentItem = context.GetArgument <ContentItem>("contentItem"); return(contentItemRepository.Add(contentItem)); }); Field <ContentItemType>( "updateContentItem", arguments: new QueryArguments( new QueryArgument <NonNullGraphType <ContentItemInputType> > { Name = "contentItem" } ), resolve: context => { var contentItem = context.GetArgument <ContentItem>("contentItem"); return(contentItemRepository.Update(contentItem)); }); }