示例#1
0
        public GetRoomCommandResult Get(string roomId, [FromQuery] string fields)
        {
            GetRoomCommand command = new GetRoomCommand();

            command.SetRoomId(roomId);
            command.SetFields(fields);

            return(Execute <GetRoomCommand, GetRoomCommandResult>(command));
        }
示例#2
0
        public GetRoomCommandResult Handle(GetRoomCommand command)
        {
            GetRoomCommandResult result = new GetRoomCommandResult();

            ObjectId roomId = new ObjectId();

            if (!ObjectId.TryParse(command.RoomId, out roomId))
            {
                AddNotification(nameof(command.RoomId), ENotifications.InvalidFormat);
            }

            if (Valid)
            {
                Room room = _roomRepository.Get(roomId);

                if (room == null && _roomRepository.Valid)
                {
                    AddNotification(nameof(command.RoomId), ENotifications.NotFound);
                }

                if (Valid)
                {
                    result = new GetRoomCommandResult(HttpStatusCode.OK).Build <Room, GetRoomCommandResult>(room, command.Fields);
                }

                else
                {
                    result = new GetRoomCommandResult(HttpStatusCode.BadRequest, Notifications);
                }
            }

            else
            {
                result = new GetRoomCommandResult(HttpStatusCode.BadRequest, Notifications);
            }

            return(result);
        }