Exemplo n.º 1
0
        public async Task <IActionResult> RemoveInventory(Guid itemId, InventoryItemType selectedItemType)
        {
            var partitionKey    = new ServicePartitionKey((int)selectedItemType);
            var partitionClient = new ServicePartitionClient <HttpCommunicationClient>(_clientFactory, _serviceUri, partitionKey);
            var item            = await partitionClient.InvokeWithRetryAsync(async (client) =>
            {
                var response = await client.HttpClient.GetAsync(new Uri($"{client.BaseUri}/api/inventory/{itemId}"));
                if (!response.IsSuccessStatusCode)
                {
                    throw new InvalidOperationException($"Error - {response.StatusCode}: {response.ReasonPhrase}");
                }

                var responseContent = await response.Content.ReadAsStringAsync();
                return(JsonConvert.DeserializeObject <InventoryItem>(responseContent));
            }, CancellationToken.None);

            var viewModel = new InventoryQuantityViewModel
            {
                ItemId   = item.ItemId,
                ItemType = item.ItemType,
                Display  = $"{item.Name} ({item.ItemType})",
                IsAdd    = false,
                Quantity = 1
            };

            return(View("UpdateInventoryQuantity", viewModel));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> RemoveInventory(InventoryQuantityViewModel viewModel)
        {
            var partitionKey    = new ServicePartitionKey((int)viewModel.ItemType);
            var partitionClient = new ServicePartitionClient <HttpCommunicationClient>(_clientFactory, _serviceUri, partitionKey);
            await partitionClient.InvokeWithRetryAsync(async (client) =>
            {
                var uri      = new Uri($"{client.BaseUri}/api/inventory/{viewModel.ItemId}/removeinventory/{viewModel.Quantity}");
                var response = await client.HttpClient.PostAsync(uri, null);
                if (!response.IsSuccessStatusCode)
                {
                    throw new InvalidOperationException($"Error - {response.StatusCode}: {response.ReasonPhrase}");
                }

                return;
            }, CancellationToken.None);

            return(RedirectToAction("Index", new { SelectedItemType = viewModel.ItemType }));
        }