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