コード例 #1
0
        public void ToApiCreateRoomRequest()
        {
            // ARRANGE
            GroupMemberAcceptance paramGMA = GroupMemberAcceptance.AutoAllow;
            string expectedGMAValue        = "autoallow";

            ApiCreateRoomRequest expected = FactoryRoom.ApiCreateRoomRequest;

            expected.NewGroupMemberAcceptance = expectedGMAValue;

            CreateRoomRequest param = new CreateRoomRequest(expected.Name)
            {
                ParentId = expected.ParentId.Value,
                Quota    = expected.Quota,
                Notes    = expected.Notes,
                RecycleBinRetentionPeriod = expected.RecycleBinRetentionPeriod,
                HasInheritPermissions     = expected.InheritPermissions.Value,
                AdminUserIds             = expected.AdminIds,
                AdminGroupIds            = expected.AdminGroupIds,
                NewGroupMemberAcceptance = paramGMA
            };

            Mock.Arrange(() => EnumConverter.ConvertGroupMemberAcceptanceToValue(paramGMA)).Returns(expectedGMAValue);

            // ACT
            ApiCreateRoomRequest actual = RoomMapper.ToApiCreateRoomRequest(param);

            // ASSERT
            Assert.Equal(expected, actual, new ApiCreateRoomRequestComparer());
        }
コード例 #2
0
        IRestRequest IRequestBuilder.PostRoom(ApiCreateRoomRequest roomParams)
        {
            RestRequest request = new RestRequest(ApiConfig.ApiPostRoom, Method.POST);

            SetGeneralRestValues(request, true, roomParams);
            return(request);
        }
コード例 #3
0
        internal static ApiCreateRoomRequest ToApiCreateRoomRequest(CreateRoomRequest createRoomRequest)
        {
            ApiCreateRoomRequest apiCreateRoomRequest = new ApiCreateRoomRequest {
                ParentId = createRoomRequest.ParentId,
                Name     = createRoomRequest.Name,
                Quota    = createRoomRequest.Quota,
                Notes    = createRoomRequest.Notes,
                RecycleBinRetentionPeriod = createRoomRequest.RecycleBinRetentionPeriod,
                InheritPermissions        = createRoomRequest.HasInheritPermissions,
                AdminIds                 = createRoomRequest.AdminUserIds,
                AdminGroupIds            = createRoomRequest.AdminGroupIds,
                NewGroupMemberAcceptance = EnumConverter.ConvertGroupMemberAcceptanceToValue(createRoomRequest.NewGroupMemberAcceptance)
            };

            return(apiCreateRoomRequest);
        }
コード例 #4
0
        public Node CreateRoom(CreateRoomRequest request)
        {
            _client.Executor.CheckApiServerVersion();

            #region Parameter Validation

            request.MustNotNull(nameof(request));
            request.ParentId.MustPositive(nameof(request.ParentId));
            request.Name.MustNotNullOrEmptyOrWhitespace(nameof(request.Name));
            request.Quota.NullableMustNotNegative(nameof(request.Quota));
            request.RecycleBinRetentionPeriod.NullableMustNotNegative(nameof(request.RecycleBinRetentionPeriod));
            if (request.AdminUserIds.CheckEnumerableNullOrEmpty() && request.AdminGroupIds.CheckEnumerableNullOrEmpty())
            {
                throw new ArgumentNullException(nameof(request.AdminUserIds) + " | " + nameof(request.AdminGroupIds),
                                                "Room must have an admin user or admin group.");
            }

            if (request.AdminUserIds != null)
            {
                request.AdminUserIds.EnumerableMustNotNullOrEmpty(nameof(request.AdminUserIds));
                request.AdminUserIds.ForEach(id => id.MustPositive(nameof(request.AdminUserIds) + " element"));
            }

            if (request.AdminGroupIds != null)
            {
                request.AdminGroupIds.EnumerableMustNotNullOrEmpty(nameof(request.AdminGroupIds));
                request.AdminGroupIds.ForEach(id => id.MustPositive(nameof(request.AdminGroupIds) + " element"));
            }

            #endregion

            ApiCreateRoomRequest apiCreateRoomRequest = RoomMapper.ToApiCreateRoomRequest(request);
            IRestRequest         restRequest          = _client.Builder.PostRoom(apiCreateRoomRequest);
            ApiNode result = _client.Executor.DoSyncApiCall <ApiNode>(restRequest, RequestType.PostRoom);
            return(NodeMapper.FromApiNode(result));
        }