示例#1
0
        public async Task Should_MoveClientToNewTenant()
        {
            // Arrange
            var customHttpClient = new CustomWebApplicationFactory <Startup>(Guid.NewGuid().ToString()).CreateClient();
            var createdTenant1   = await TenantsControllerTests.CreateTenant(customHttpClient);

            var createdClient = await CreateClient(customHttpClient, createdTenant1.TenantId);

            var createdTenant2 = await TenantsControllerTests.CreateTenant(customHttpClient);

            var clientTenantUpdateDto = new ClientTenantUpdateDto
            {
                TenantId = createdTenant2.TenantId
            };
            var patchPayload = JsonConvert.SerializeObject(clientTenantUpdateDto);

            // Act
            var patchResponse = await customHttpClient.PatchAsync($"/api/clients/{createdClient.ClientId}", new StringContent(patchPayload, Encoding.UTF8, "application/json"));

            // Assert
            patchResponse.StatusCode.Should().Be(HttpStatusCode.OK);
            var patchResponseBody = await patchResponse.Content.ReadAsStringAsync();

            var movedToNewTenantClient = JsonConvert.DeserializeObject <ClientReadDto>(patchResponseBody);

            movedToNewTenantClient.TenantId.Should().Be(createdTenant2.TenantId);
        }
示例#2
0
        public async Task <ActionResult <ClientReadDto> > MoveClientToNewTenant(Guid clientId, ClientTenantUpdateDto clientTenantUpdateDto)
        {
            var client = await _clientsRepo.GetClientById(clientId, true);

            if (client == null)
            {
                return(NotFound());
            }

            if (await _tenantsRepo.GetTenantById(clientTenantUpdateDto.TenantId) == null)
            {
                return(BadRequest(new { Error = "Invalid Tenant Id" }));
            }

            client = _mapper.Map(clientTenantUpdateDto, client);
            var updatedClient = await _clientsRepo.UpdateClient(client);

            return(Ok(_mapper.Map <ClientReadDto>(updatedClient)));
        }