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); }); }
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); }); }
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); }); }
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; })); }); }
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); } ); }
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); }