예제 #1
0
        public IActionResult GetById(int id)
        {
            var user = _userService.GetById(Int32.Parse(User.Identity.Name));

            if (user == null)
            {
                return(Unauthorized());
            }

            var room = _roomService.GetById(id);

            if (room == null)
            {
                return(BadRequest(Properties.resultMessages.RoomNotFound));
            }

            if (_userRoomService.GetByIds(user.Id, id) == null)
            {
                return(BadRequest(Properties.resultMessages.UserRoomNotFound));
            }

            var roomDetails = _mapper.Map <RoomDetailsDto>(room);

            return(Ok(roomDetails));
        }
예제 #2
0
        public IActionResult NewRoll(int roomId, [FromBody] RollDto rollDto)
        {
            var user = _userService.GetById(Int32.Parse(User.Identity.Name));

            if (user == null)
            {
                return(Unauthorized());
            }

            var room = _roomService.GetById(roomId);

            if (room == null)
            {
                return(BadRequest(Properties.resultMessages.RoomNotFound));
            }

            var userRoom = _userRoomService.GetByIds(user.Id, room.Id);

            if (userRoom == null)
            {
                return(BadRequest(Properties.resultMessages.UserRoomNotFound));
            }

            if (rollDto.RollValues == null)
            {
                return(BadRequest(Properties.resultMessages.RollValueNull));
            }

            if (rollDto.RollValues.Count < 1)
            {
                return(BadRequest(Properties.resultMessages.RollValueEmpty));
            }

            var random = new Random();

            foreach (RollValueDto rollValue in rollDto.RollValues)
            {
                rollValue.Value = random.Next(1, Math.Abs(rollValue.MaxValue) + 1);
                if (rollValue.MaxValue < 0)
                {
                    rollValue.Value = -rollValue.Value;
                }
            }

            var rollValues = _mapper.Map <IList <RollValue> >(rollDto.RollValues);

            var roll = new Roll()
            {
                User       = user,
                Room       = room,
                Modifier   = rollDto.Modifier,
                RollValues = rollValues
            };

            _rollService.Create(roll);
            rollDto = _mapper.Map <RollDto>(roll);

            var roomGroup = "room_" + roomId;

            _roomHub.Clients.Group(roomGroup).SendAsync("NewRoll", rollDto);

            return(Ok(rollDto));
        }