public async Task CrudTest()
        {
            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri(_uri);
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                HttpResponseMessage response;

                // HTTP POST
                var id = Guid.NewGuid();
                var category = new CategoryTree
                {
                    Id = id,
                    Key = "Key" + id.ToString(),
                    Name = "Name" + id.ToString()
                };

                response = await client.PostAsJsonAsync(_controller, category);

                Assert.IsTrue(response.IsSuccessStatusCode, "HTTP POST fail");

                // HTTP GET
                response = await client.GetAsync(_controller + id.ToString());

                Assert.IsTrue(response.IsSuccessStatusCode, "HTTP GET fail");

                var result = await response.Content.ReadAsAsync<CategoryTree>();

                Assert.AreEqual(category.Id, result.Id);
                Assert.AreEqual(category.Key, result.Key);
                Assert.AreEqual(category.Name, result.Name);
                Assert.AreEqual(category.ParentId, result.ParentId);

                // HTTP PUT
                category.Name = category.Name + "Upd";

                response = await client.PutAsJsonAsync(_controller + id.ToString(), category);

                Assert.IsTrue(response.IsSuccessStatusCode, "HTTP PUT fail");

                // HTTP DELETE
                response = await client.DeleteAsync(_controller + id.ToString());

                Assert.IsTrue(response.IsSuccessStatusCode, "HTTP DELETE fail");
            }
        }
        public void PostTest()
        {
            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri(_uri);
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                HttpResponseMessage response;

                // HTTP POST
                var id = Guid.NewGuid();
                var category = new CategoryTree
                {
                    Id = id,
                    Key = "Key" + id.ToString(),
                    Name = "Name" + id.ToString()
                };

                response = client.PostAsJsonAsync(_controller, category).Result;

                System.Diagnostics.Debug.Print("PostTest " + DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss.fff tt") + " " + response.IsSuccessStatusCode);

                Assert.IsTrue(response.IsSuccessStatusCode, "HTTP POST fail");
            }
        }
        public async Task PostTest()
        {
            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri(_uri);
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                HttpResponseMessage response;

                // HTTP POST
                var id = Guid.NewGuid();
                var category = new CategoryTree
                {
                    Id = id,
                    Key = "Key" + id.ToString(),
                    Name = "Name" + id.ToString()
                };

                response = await client.PostAsJsonAsync(_controller, category);

                Assert.IsTrue(response.IsSuccessStatusCode, "HTTP POST fail");
            }
        }