Пример #1
0
        public async Task <IActionResult> ProductUpdateRegistration([FromBody] ProductUpdateRegistrationRequest request)
        {
            var result = await warehouseSvc.ProductUpdateRegistration(request);

            if (result)
            {
                await warehouseSvc.NotifySubscriptors(request);
            }

            return(Ok(result));
        }
Пример #2
0
        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);
        }
Пример #3
0
        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;
            }
        }
Пример #4
0
        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);
        }