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)); }
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 })); }