private void AddBarcode()
        {
            try
            {
                var barcode = new Barcode {Barcode1 = Barcode};

                var productWithThisBarcode = productsViewModel.AllProducts.FirstOrDefault(x => x.Barcodes.Any(y => y.Barcode1 == barcode.Barcode1));

                if (productWithThisBarcode != null)
                {
                    throw new ArgumentException($"Продуктът \"{productWithThisBarcode.Name}\" вече използва въведеният баркод.");
                }

                Product.Barcodes.Add(barcode);
                databaseHandlerService.AddBarcodeAsync(product, barcode);

                Barcode = null;

                productsViewModel.UpdateProduct(product);

                var notifySuccessEvent = eventAggregator.GetEvent<NotifyOnSuccessEvent>();
                notifySuccessEvent.Publish("Баркодът е добавен успешно.");
            }
            catch (Exception ex)
            {
                var notifyErrorEvent = eventAggregator.GetEvent<NotifyOnErrorEvent>();
                notifyErrorEvent.Publish(ex.Message);
            }
        }
        public void AddBarcodeAsync(Product originalProduct, Barcode barcode)
        {
            using (var worker = new BackgroundWorker())
            {
                worker.DoWork += (object sender, DoWorkEventArgs e) =>
                {
                    using (var context = new EugenieEntities(connectionStringAsString))
                    {
                        var product = context.Products.FirstOrDefault(x => x.ID == originalProduct.ID);

                        product.Barcodes.Add(barcode);
                        context.SaveChanges();
                    }
                };

                worker.RunWorkerAsync();
            }
        }