public async Task <IActionResult> ProductUpdateRegistration([FromBody] ProductUpdateRegistrationRequest request) { var result = await warehouseSvc.ProductUpdateRegistration(request); if (result) { await warehouseSvc.NotifySubscriptors(request); } return(Ok(result)); }
public async Task <bool> NotifySubscriptors(ProductUpdateRegistrationRequest request) { bool result = false; var jsonPayload = JsonConvert.SerializeObject(request); var stringContent = new StringContent(jsonPayload, Encoding.UTF8, "application/json"); var response = await httpClient.PostAsync($"{Settings.DAPR_SIDECAR_BASEURL}/v1.0/publish/{Settings.PRODUCTREGISTRATION_PUBSUB_COMPONENT_NAME}/{Settings.PRODUCTREGISTRATION_PUBSUB_TOPIC_NAME}", stringContent); if (response.IsSuccessStatusCode) { result = true; } return(result); }
async static Task SaveProduct(string warehouseID, string productID, string productName, string productQuantity, string productDescription) { try { lblSendingData.Visible = true; progressBar.Visible = true; var request = new ProductUpdateRegistrationRequest() { WarehouseID = warehouseID, ProductID = productID, ProductName = productName, ProductQuantity = productQuantity, ProductDescription = productDescription }; var jsonPayload = JsonConvert.SerializeObject(request); var stringContent = new StringContent(jsonPayload, Encoding.UTF8, "application/json"); HttpClient httpClient = new HttpClient(); httpClient.Timeout = TimeSpan.FromSeconds(15); var response = await httpClient.PostAsync($"{Settings.WAREHOUSE_API_BASEURL}/warehouse/productupdateregistration", stringContent); if (response.IsSuccessStatusCode) { MessageBox.ErrorQuery(50, 7, "Alert", "Product has been successfully saved", "Accept"); Action action = () => SearchProductsWindow.Draw(); running = action; Application.RequestStop(); } else { MessageBox.ErrorQuery(50, 7, "Alert", "There was an error saving the product", "Accept"); } } catch { MessageBox.ErrorQuery(50, 7, "Alert", "There was an error saving the product", "Accept"); } finally { progressBar.Fraction = 0; lblSendingData.Visible = false; progressBar.Visible = false; } }
public async Task <bool> ProductUpdateRegistration(ProductUpdateRegistrationRequest request) { bool result = false; List <Models.Product> list = null; var products = await GetWarehouseProducts(request.WarehouseID); if (products == null) { list = new List <Models.Product>(); list.Add(request); } else { list = products; var product = list.Find(x => x.ProductID == request.ProductID); if (product == null) { list.Add(request); } else { list.Remove(product); list.Add(request); } } var keyValueContent = new[] { new{ key = request.WarehouseID, value = list } }; var jsonPayload = JsonConvert.SerializeObject(keyValueContent); var stringContent = new StringContent(jsonPayload, Encoding.UTF8, "application/json"); var response = await httpClient.PostAsync($"{Settings.DAPR_SIDECAR_BASEURL}/v1.0/state/{Settings.WAREHOUSE_STATE_COMPONENT_NAME}", stringContent); if (response.IsSuccessStatusCode) { result = true; } return(result); }