/// <summary>
        /// Product Updated
        /// </summary>
        /// <param name="transaction"></param>
        private async Task ProductUpdated(TransactionQueueInbound transaction)
        {
            ProductUpdatePayload payload = JsonConvert.DeserializeObject <ProductUpdatePayload>(transaction.Payload);

            int productMasterId = payload.ProductId;

            Product product = await _salesOrderManagementDataService.GetProductInformationByProductMasterForUpdate(productMasterId);

            if (product != null)
            {
                product.ProductNumber = payload.ProductNumber;
                product.Description   = payload.Description;
                product.UnitPrice     = payload.UnitPrice;

                await _salesOrderManagementDataService.UpdateProduct(product);
            }
            else
            {
                product                 = new Product();
                product.AccountId       = payload.AccountId;
                product.ProductNumber   = payload.ProductNumber;
                product.ProductMasterId = payload.ProductId;
                product.Description     = payload.Description;
                product.UnitPrice       = payload.UnitPrice;

                await _salesOrderManagementDataService.CreateProduct(product);
            }

            await LogSuccessfullyProcessed(transaction);
        }
        /// <summary>
        /// Generate Product Update Payload
        /// </summary>
        /// <param name="product"></param>
        /// <returns></returns>
        private string GenerateProductUpdatePayload(Product product)
        {
            ProductUpdatePayload productUpdatePayload = new ProductUpdatePayload();

            productUpdatePayload.AccountId     = product.AccountId;
            productUpdatePayload.ProductId     = product.ProductId;
            productUpdatePayload.BinLocation   = product.BinLocation;
            productUpdatePayload.Description   = product.Description;
            productUpdatePayload.ProductNumber = product.ProductNumber;
            productUpdatePayload.UnitPrice     = product.UnitPrice;

            string payload = SerializationFunction <ProductUpdatePayload> .ReturnStringFromObject(productUpdatePayload);

            return(payload);
        }