public async Task <IActionResult> PatchBottle([FromRoute] int id, [FromBody] BottleDTOContainer bottle) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (bottle == null || bottle.Bottles == null) { return(BadRequest()); } var result = bottleHandler.HandleRequest(bottle, id); await _context.SaveChangesAsync(); return(Ok()); }
public override Bottle HandleRequest(BottleDTOContainer bottle, int playerId) { if (bottle.Action == BottleAction.Throw) { var b = Context.Bottle.Find(bottle.Bottles[0].BottleId); var p = Context.Player.Find(playerId); p.Bottles.Remove(b); Context.Remove(b); return(null); } else { return(Successor.HandleRequest(bottle, playerId)); } }
public override Bottle HandleRequest(BottleDTOContainer bottle, int playerId) { if (bottle.Action == BottleAction.PickUp) { var b = Context.Bottle.Find(bottle.Bottles[0].BottleId); var p = Context.Player.Find(playerId); b.BagDeepness = bottle.BagDeepness; b.BagPosition = bottle.BagPosition; if (p.Bottles == null) { p.Bottles = new List <Bottle>(); } p.Bottles.Add(b); Context.SaveChanges(); return(b); } else { return(Successor.HandleRequest(bottle, playerId)); } }
public override Bottle HandleRequest(BottleDTOContainer bottle, int playerId) { if (bottle.Action == BottleAction.Deposit) { var p = Context.Player.Find(playerId); var machine = Context.Machine.FirstOrDefault(x => x.MachineType == MachineType.RecyclingMachine && x.PosX == p.PosX && x.PosY == p.PosY); if (machine == null) { return(null); } var toRemove = new List <int>(); var Colas = Context.Bottle.Where(x => x.BagDeepness == bottle.BagDeepness && x.BagPosition == bottle.BagPosition && (x.BottleType == BottleType.Cola || x.BottleType == BottleType.NukeCola)); foreach (var item in Colas) { switch (item.BottleType) { case BottleType.Cola: p.Points += 1; break; case BottleType.NukeCola: p.Points += 5; break; default: break; } Context.Bottle.Remove(item); } return(null); } else { return(Successor.HandleRequest(bottle, playerId)); } }
public abstract Bottle HandleRequest(BottleDTOContainer bottle, int playerId);