Пример #1
0
 public ProductMutation(IReviewRepo reviewRepo, ReviewMessageService messageService)
 {
     FieldAsync <ReviewGt>(
         "createReview",
         arguments: new QueryArguments(
             new QueryArgument <NonNullGraphType <ReviewInputGt> > {
         Name = "review"
     }),
         resolve: async context =>
     {
         var review = context.GetArgument <Review>("review");
         await reviewRepo.AddAsync(review);
         messageService.AddReviewAddedMessage(review);
         return(review);
     });
 }
Пример #2
0
 public AppMutation(ProductReviewRepository reviewRepository, ReviewMessageService messageService)
 {
     FieldAsync <ProductReviewType>(
         "createReview",
         arguments: new QueryArguments(
             new QueryArgument <NonNullGraphType <ProductReviewInputType> > {
         Name = "review"
     }),
         resolve: async context =>
     {
         var review = context.GetArgument <ProductReview>("review");
         await reviewRepository.AddReview(review);
         messageService.AddReviewAddedMessage(review);
         return(review);
     });
 }
Пример #3
0
 public CarvedRockMutation(ProductReviewRepository reviewRepository,
                           ReviewMessageService messageService)
 {
     FieldAsync <ProductReviewType>(
         "createReview",
         arguments: new QueryArguments(
             new QueryArgument <NonNullGraphType <ProductReviewInputType> > {
         Name = "review"
     }),
         resolve: async context =>
     {
         var review = context.GetArgument <ProductReview>("review");
         //return await context.TryAsyncResolve(
         //    async c => await reviewRepository.AddReview(review));
         await reviewRepository.AddReview(review);
         messageService.AddReviewAddedMessage(review);     //notify the messagingService of new review
         return(review);
     });
 }
Пример #4
0
 public BookShopMutation(BookShopDbContext dbContext, ReviewMessageService reviewMessageService)
 {
     FieldAsync <BookReviewType>(
         name: "createReview",
         arguments: new QueryArguments(
             new QueryArgument <NonNullGraphType <BookReviewInputType> > {
         Name = "review"
     }),
         resolve: async context =>
     {
         var review = context.GetArgument <BookReview>("review");
         return(await context.TryAsyncResolve(async _ =>
         {
             await dbContext.BookReviews.AddAsync(review);
             await dbContext.SaveChangesAsync();
             reviewMessageService.AddReviewAddedMessage(review);
             return review;
         }));
     });
 }
Пример #5
0
        public CarvedRockMutation(ProductReviewRepository reviewRepository, ReviewMessageService messageService)
        {
            FieldAsync <ProductReviewType>( //ProductReviewType --> definuje ze tento objekt bude vrateny po tom ako bude mutation vykonana
                "createReview",             //poziadavka na vytvorenie review
                arguments: new QueryArguments(
                    new QueryArgument <NonNullGraphType <ProductReviewInputType> > {
                Name = "review"
            }                                                                                       //pozadovany argument
                    ),
                resolve: async context =>
            {
                var review = context.GetArgument <ProductReview>("review");    //ziskanie argumentu a resolvovanie do entity objektu
                //return await context.TryAsyncResolve(async c => await reviewRepository.AddReview(review));
                //vystup z AddReview je pouzitim "TryAsyncResolve" monitorovany (???) , ak je vytvorenie uspesne, review je navratene normalne
                //ak sa vsak vyskytne exception pri volani repository, exception je catchnuta a pridana do ErrorListu ktory je vrateny klientovi aj ked je API nastavena pre not-expose exception

                await reviewRepository.AddReview(review);
                messageService.AddReviewAddedMessage(review);     //po pridani review su subscriberi notifikovani
                return(review);
            }
                );
        }
Пример #6
0
        public ProductMutation(IRepository <IProduct> productRepo, IMutableRepository <Review> reviewRepo, ReviewMessageService messageService)
        {
            _reviewRepo  = reviewRepo;
            _productRepo = productRepo;
            // Badness: This dependency should be removed!
            _messageService = messageService;
            var args = new QueryArguments(new QueryArgument <NonNullGraphType <ReviewInputType> > {
                Name = reviewArg
            });

            FieldAsync <ReviewType> ("createReview", arguments: args, resolve: AddReview);
        }