示例#1
0
        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));
            });
        }