示例#1
0
        public async Task <IActionResult> Post([FromBody] BoardRequest model)
        {
            Board newRecord = null;

            if (ModelState.IsValid)
            {
                InitUserCredentials();

                newRecord = new Board
                {
                    Guid             = Guid.NewGuid(),
                    UserGuid         = UserGuid,
                    CompanyGuid      = CompanyGuid,
                    CreationTime     = DateTime.UtcNow,
                    CreationUserGuid = UserGuid
                };

                newRecord = _mapper.Map(model, newRecord);

                try
                {
                    await _boardService.Save(newRecord);
                }
                catch (Exception e)
                {
                    Log.Error(e.StackTrace);
                    throw;
                }
            }

            return(CreatedAtAction(nameof(Post), _mapper.Map(newRecord, new BoardResponse())));
        }
示例#2
0
        public async Task <ActionResult <BoardResponse> > PostBoard(BoardRequest boardRequest)
        {
            var boardResponse = await _boardService.Create(boardRequest);


            return(CreatedAtAction(nameof(GetBoard), new { id = boardResponse.Value.Id }, boardResponse.Value));
        }
示例#3
0
        public async Task <IActionResult> CreateBoard(BoardRequest boardRequest)
        {
            var board = await _boardService.CreateBoard(boardRequest);

            var boardUri = new Uri($"/boards/{board.Id}", UriKind.Relative);

            return(Created(boardUri, board));
        }
示例#4
0
        public async Task <ActionResult <BoardResponse> > Create(BoardRequest boardRequest)
        {
            var board = MapRequestToModel(boardRequest);

            board = await _boardRepository.Add(board);

            var boardResponse = MapModelToResponse(board);

            return(boardResponse);
        }
示例#5
0
        public async Task <IActionResult> PutBoard(long id, BoardRequest boardRequest)
        {
            if (id != boardRequest.Id)
            {
                return(BadRequest());
            }

            await _boardService.Update(boardRequest);

            return(NoContent());
        }
示例#6
0
        public async Task <Board> CreateBoard(BoardRequest createBoardRequest)
        {
            var boardId = Guid.NewGuid();

            //Save the board in the database which is not done as part of this excerise
            return(new Board
            {
                Id = boardId,
                RowSize = createBoardRequest.RowSize,
                ColumnSize = createBoardRequest.ColumnSize
            });
        }
 public IActionResult DeleteBoard([FromBody] BoardRequest boardToDelete)
 {
     Logger.Info("DeleteBoard request received.");
     if (_boardsManager.BoardExist(boardToDelete.BoardId))
     {
         _boardsManager.DeleteBoard(boardToDelete.BoardId);
     }
     else
     {
         Logger.Error($"The board [{boardToDelete.BoardId}] can't be found.");
         return(CreateErrorResponse(StatusCodes.Status400BadRequest, $"The board {boardToDelete.BoardId} doesn't exist"));
     }
     Logger.Info($"The Board {boardToDelete.BoardId} has been deleted.");
     return(CreateSuccessResponse(StatusCodes.Status200OK));
 }
示例#8
0
        public Board MapRequestToModel(BoardRequest boardRequest)
        {
            if (boardRequest == null)
            {
                return(null);
            }

            var board = new Board
            {
                Id          = boardRequest.Id,
                Name        = boardRequest.Name,
                Image       = boardRequest.Image,
                Description = boardRequest.Description,
                TeamId      = boardRequest.TeamId
            };

            return(board);
        }
示例#9
0
        private BoardResponse OnBoard(BoardRequest request, ICommandCallerInfo callerInfo)
        {
            if (!LocalEntities.Instance.ContainsEntity(request.platformEntityId))
            {
                Debug.LogError("The platform entity isn't being tracked locally...");
                // todo probably should throw here instead
            }

            var targetObject = LocalEntities.Instance.Get(request.platformEntityId).UnderlyingGameObject;

            // TODO - in-range and other validation

            PlatformPositionWriter.Send(
                new PlatformPosition.Update()
                .SetLocalPosition(new Vector3f(0, 0, 0))
                .SetPlatformEntity(request.platformEntityId));

            return(new BoardResponse());            // TODO - richer status?
        }
示例#10
0
        public async Task <IActionResult> Put([FromBody] BoardRequest model, Guid guid)
        {
            if (ModelState.IsValid)
            {
                if (guid == Guid.Empty)
                {
                    return(new BadRequestResult());
                }

                Board record = await _boardService.Get(guid);

                if (record == null)
                {
                    return(new NoContentResult());
                }

                InitUserCredentials();

                if (record.UserGuid != UserGuid)
                {
                    return(new UnauthorizedResult());
                }

                var mapped = _mapper.Map(model, record);
                mapped.LastUpdateTime     = DateTime.Now;
                mapped.LastUpdateUserGuid = UserGuid;

                try
                {
                    await _boardService.Save(mapped);
                }
                catch (Exception e)
                {
                    Log.Error(e.StackTrace);
                    throw;
                }
            }

            return(new OkResult());
        }
        public IActionResult AllShipsSink([FromBody] BoardRequest boardToCheck)
        {
            Logger.Info("AllShipsSink request received.");
            var board = _boardsManager.GetBoard(boardToCheck.BoardId);

            if (board == null)
            {
                Logger.Error($"The board [{boardToCheck.BoardId}] can't be found.");
                return(CreateErrorResponse(StatusCodes.Status400BadRequest, $"The board {boardToCheck.BoardId} doesn't exist"));
            }

            var allShipsSink = board.AllShipsSink();

            Logger.Info($"All ships sink: {allShipsSink}");
            return(new JsonResult(new AllShipsSinkResponse()
            {
                AllShipsSink = allShipsSink
            })
            {
                StatusCode = StatusCodes.Status200OK
            });
        }