public async Task TestCrudOperationsAsync()
        {
            // Create the first customer
            var company = await _company.CreateCompanyAsync(null, Company1);

            AssertCompanies(Company1, company);

            // Create the second customer
            company = await _company.CreateCompanyAsync(null, Company2);

            AssertCompanies(Company2, company);

            // Get all customers
            var page = await _company.GetCompaniesAsync(
                null,
                new FilterParams(),
                new PagingParams(),
                new SortParams()
                );

            Assert.NotNull(page);
            Assert.Equal(2, page.Data.Count);

            var company1 = page.Data[0];

            // Update the customer
            company1.Name = "ABC";

            company = await _company.UpdateCompanyAsync(null, company1);

            Assert.NotNull(company1);
            Assert.Equal(company1.Id, company.Id);
            Assert.Equal("ABC", company.Name);

            // Delete the customer
            company = await _company.DeleteCompanyByIdAsync(null, company1.Id);

            Assert.NotNull(company);
            Assert.Equal(company1.Id, company.Id);

            // Try to get deleted customer
            company = await _company.GetCompanyByIdAsync(null, company1.Id);

            Assert.Null(company);

            // Clean up for the second test
            await _company.DeleteCompanyByIdAsync(null, Company2.Id);
        }