public UniversitySubscription(CourseMessageService messageService)
        {
            this.messageService = messageService;

            Name = "Subscription";

            AddField(new EventStreamFieldType
            {
                Name     = "courseAdded",
                Type     = typeof(CourseType),
                Resolver = new FuncFieldResolver <Course>
                               (ResolveMessage),
                Subscriber = new EventStreamResolver <Course>
                                 (Subscribe)
            });
        }
        public UniversityMutation(UniversalRepository universalRepository, CourseMessageService courseMessageService)
        {
            _universalRepository  = universalRepository;
            _courseMessageService = courseMessageService;

            Name = "Mutation";

            Field <CourseType>(
                "createCourse",
                arguments: new QueryArguments(new QueryArgument <NonNullGraphType <CourseInputType> > {
                Name = "course"
            }),
                resolve: context =>
            {
                var course = context.GetArgument <Course>("course");
                var result = _universalRepository.AddCourse(course);

                return(_courseMessageService.AddMessage(result));
            });
        }