private static void InitializeMutationSchema(GraphQLSchema <MemContext> schema) { var mutate = schema.AddType <MutateMe>(); mutate.AddAllFields(); schema.AddField("mutateMes", new { id = 0 }, (db, args) => db.MutateMes.AsQueryable().FirstOrDefault(a => a.Id == args.id)); schema.AddMutation("mutate", new { id = 0, newVal = 0 }, (db, args) => { var mutateMe = db.MutateMes.First(m => m.Id == args.id); mutateMe.Value = args.newVal; }, (db, args) => db.MutateMes.AsQueryable().FirstOrDefault(a => a.Id == args.id)); schema.AddMutation("addMutate", new { newVal = 0 }, (db, args) => { var newMutate = new MutateMe { Value = args.newVal }; db.MutateMes.Add(newMutate); // simulate Id being set by database newMutate.Id = db.MutateMes.Max(m => m.Id) + 1; return(newMutate.Id); }, (db, args, id) => db.MutateMes.AsQueryable().FirstOrDefault(a => a.Id == id)); }
private static void InitializeMutationSchema(GraphQLSchema <EfContext> schema) { var mutate = schema.AddType <MutateMe>(); mutate.AddAllFields(); schema.AddField("mutateMes", new { id = 0 }, (db, args) => db.MutateMes.AsQueryable().FirstOrDefault(a => a.Id == args.id)); schema.AddMutation("mutate", new { id = 0, newVal = 0 }, (db, args) => { var mutateMe = db.MutateMes.First(m => m.Id == args.id); mutateMe.Value = args.newVal; db.SaveChanges(); }, (db, args) => db.MutateMes.AsQueryable().FirstOrDefault(a => a.Id == args.id)); schema.AddMutation("addMutate", new { newVal = 0 }, (db, args) => { var newMutate = new MutateMe { Value = args.newVal }; db.MutateMes.Add(newMutate); db.SaveChanges(); return(newMutate.Id); }, (db, args, id) => db.MutateMes.AsQueryable().FirstOrDefault(a => a.Id == id)); }
/// <summary> /// Initialization for Beer Schema for Mutation /// </summary> /// <param name="schema"></param> private static void InitializeMutationSchema(GraphQLSchema <BeerContext> schema) { schema.AddMutation("addBeer", new { id = 0, name = string.Empty, averageRatings = 0, beerTypeId = 0 }, (db, args) => { var newBeer = new Beers { Name = args.name, BeerTypeId = args.beerTypeId, AverageRatings = args.averageRatings }; db.Beers.Add(newBeer); db.SaveChanges(); return(newBeer.Id); }, (db, args, id) => db.Beers.AsQueryable().FirstOrDefault(a => a.Id == id)); schema.AddMutation("putBeer", new { id = 0, name = string.Empty, averageRatings = 0, beerTypeId = 0 }, (db, args) => { var oldBeer = db.Beers.Find(args.id); if (oldBeer != null) { oldBeer.Name = args.name; oldBeer.BeerTypeId = args.beerTypeId; oldBeer.AverageRatings = args.averageRatings; db.Entry(oldBeer).State = EntityState.Modified; db.SaveChanges(); return(oldBeer.Id); } return(0); }, (db, args, id) => db.Beers.AsQueryable().FirstOrDefault(a => a.Id == id)); schema.AddMutation("deleteBeer", new { id = 0 }, (db, args) => { var oldBeer = db.Beers.Find(args.id); if (oldBeer != null) { db.Beers.Remove(oldBeer); db.SaveChanges(); return(oldBeer.Id); } return(0); }, (db, args, id) => db.Beers.AsQueryable().FirstOrDefault(a => a.Id == id)); schema.AddMutation("addBeerRating", new { id = 0, rating = 0, beerId = 0 }, (db, args) => { var beerRating = new BeerRatings { Id = args.id, Rating = args.rating, BeerId = args.beerId }; db.BeerRatings.Add(beerRating); db.SaveChanges(); var allRatings = db.BeerRatings.Where(r => r.BeerId == beerRating.BeerId).Select(r => r.Rating).ToList(); double averageRating = allRatings.Average(); var bee = db.Beers.FirstOrDefault(b => b.Id == beerRating.BeerId); if (bee != null) { bee.AverageRatings = averageRating; db.Entry(bee).State = EntityState.Modified; db.SaveChanges(); return(bee.Id); } return(0); }, (db, args, id) => db.Beers.AsQueryable().FirstOrDefault(a => a.Id == id)); }