예제 #1
0
        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());
        }
예제 #2
0
        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));
            }
        }
예제 #3
0
 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));
     }
 }
예제 #4
0
        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));
            }
        }
예제 #5
0
 public abstract Bottle HandleRequest(BottleDTOContainer bottle, int playerId);