private ProductUniqueEnum CheckUnique(Product product)
        {
            ProductUniqueEnum result = ProductUniqueEnum.success;

            using (Entities db = new Entities())
            {
                Products findProduct = db.Products.Where(p => p.Code == product.Code ||
                                                         p.Name == product.Name || (p.Barcode != null && p.Barcode == product.Barcode)).FirstOrDefault();

                if (findProduct != null)
                {
                    if (findProduct.Code == product.Code)
                    {
                        result = ProductUniqueEnum.codeNotUnique;
                    }
                    if (findProduct.Name == product.Name)
                    {
                        result = ProductUniqueEnum.nameNotUnique;
                    }
                    if (product.Barcode != null && findProduct.Barcode == product.Barcode)
                    {
                        result = ProductUniqueEnum.barcodeNotUnique;
                    }
                }
            }

            return(result);
        }
        public void GenerateProduct()
        {
            DeleteAll();

            int num = 0;

            while (num <= 50000)
            {
                Product product = new Product
                {
                    Code    = GenerateCode(),
                    Name    = GenerateName(),
                    Price   = GeneratePrice(),
                    Barcode = GenerateBarcode(num)
                };

                ProductUniqueEnum status = CheckUnique(product);

                while (status != ProductUniqueEnum.success)
                {
                    switch (status)
                    {
                    case ProductUniqueEnum.codeNotUnique:
                    {
                        product.Code = GenerateCode();
                    }
                    break;

                    case ProductUniqueEnum.nameNotUnique:
                    {
                        product.Name = GenerateName();
                    }
                    break;

                    case ProductUniqueEnum.barcodeNotUnique:
                    {
                        product.Barcode = GenerateBarcode(num);
                    }
                    break;
                    }

                    status = CheckUnique(product);
                }

                AddProduct(product);

                num++;
            }
        }