Esempio n. 1
0
        public ActionOutcomeInfoDto CreateActionOutcome(int roomId, ActionOutcomeInfoDto dto, int gameId)
        {
            context.Action.Add(new Models.DbModels.Action
            {
                Descr  = dto.Action.Descr,
                GameId = gameId,
                RoomId = roomId
            });

            context.Outcome.Add(new Outcome
            {
                RoomId     = roomId,
                GameId     = gameId,
                ItemId     = dto.Outcome.ItemId,
                MonsterId  = dto.Outcome.MonsterId,
                NextRoomId = dto.Outcome.NextRoomId
            });

            SaveChanges();

            var action = (from a in context.Action
                          where a.Descr == dto.Action.Descr && a.RoomId == roomId
                          select a).FirstOrDefault();

            var outcome = (from o in context.Outcome
                           where o.RoomId == roomId && o.MonsterId == dto.Outcome.MonsterId && o.ItemId == dto.Outcome.ItemId && o.NextRoomId == dto.Outcome.NextRoomId
                           select o).FirstOrDefault();

            context.ActionOutcome.Add(new ActionOutcome
            {
                ActionId  = action.Id,
                OutcomeId = outcome.Id
            });

            SaveChanges();
            return(new ActionOutcomeInfoDto
            {
                Id = (from ao in context.ActionOutcome
                      where ao.ActionId == action.Id && ao.OutcomeId == outcome.Id
                      select ao.Id).FirstOrDefault(),
                Action = action,
                Outcome = new OutcomeInfoDto
                {
                    Id = outcome.Id,
                    MonsterId = outcome.MonsterId,
                    MonsterName = (from m in context.Monster
                                   where m.Id == outcome.MonsterId
                                   select m.Name).FirstOrDefault(),
                    ItemId = outcome.ItemId,
                    ItemName = (from i in context.Item
                                where i.Id == outcome.ItemId
                                select i.Name).FirstOrDefault(),
                    NextRoomId = outcome.NextRoomId,
                    NextRoomName = (from r in context.Room
                                    where r.Id == outcome.NextRoomId
                                    select r.Name).FirstOrDefault()
                }
            });
        }
 public RoomOptionResponses GetCreateRoomOptionSuccess(ActionOutcomeInfoDto option) => new RoomOptionResponses
 {
     Status     = true,
     StatusCode = 204,
     StatusText = "Option created successfully",
     Options    = new List <ActionOutcomeInfoDto>
     {
         option
     }
 };
Esempio n. 3
0
 public IActionResult CreateOptionForRoom([FromRoute] int roomId, [FromBody] ActionOutcomeInfoDto dto, [FromRoute] int gameId)
 {
     try
     {
         var actionOutcome = repo.CreateActionOutcome(roomId, dto, gameId);
         return(StatusCode(204, roomOptionResponses.GetCreateRoomOptionSuccess(actionOutcome)));
     }
     catch (Exception)
     {
         return(StatusCode(500, ErrorResponse.ServerError));
     }
 }