Inheritance: System.Web.UI.Page
Exemple #1
0
        public int AddProduct(ProductBO product)
        {
            try
            {
                List <ProductDescription> descr = new List <ProductDescription>();
                Product prod = new Product();
                prod.ProductName        = product.ProductName;
                prod.ProductDescription = product.ProductDescription;
                foreach (var item in product.DescriptionBO)
                {
                    ProductDescription desc = new ProductDescription();
                    desc.Size        = item.Size;
                    desc.UnitPrice   = item.UnitPrice;
                    desc.QualityType = item.QualityType;
                    desc.Discount    = item.Discount;
                    descr.Add(desc);
                }
                prod.ProductDescriptions = descr;
                _db.Products.Add(prod);
                _db.SaveChanges();
                return(prod.ProductID);
            }

            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemple #2
0
        private bool CalcaluteProductReadyForWehkamp(Product p, ProductDescription productDescription, IServiceUnitOfWork unit, VendorAssortment vendorAT)
        {
            //check for product descriptions
            if (!ReadyforWehkampProductDescription(productDescription, p.ProductID, unit))
            {
                return(false);
            }

            //check for materialdescription attribute
            if (!ReadyForWehkampAttributes(p, MaterialDescriptionAttributeID))
            {
                return(false);
            }

            //check for attribute option material
            if (!ReadyForWehkampAttributes(p, MaterialAttributeID))
            {
                return(false);
            }

            if (vendorAT != null)
            {
                //check (only for AT) attribute option dessin
                if (!ReadyForWehkampAttributes(p, DessinAttributeID))
                {
                    return(false);
                }
            }

            return(true);
        }
        public async Task <IActionResult> PutProductDescription([FromRoute] int id, [FromBody] ProductDescription productDescription)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != productDescription.ProductDescriptionId)
            {
                return(BadRequest());
            }

            _context.Entry(productDescription).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ProductDescriptionExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
        public async Task <IActionResult> PostProductDescription(ProductDescriptionModel productDescriptionModel)
        {
            try
            {
                var productDescription = new ProductDescription()
                {
                    Title             = productDescriptionModel.ProductName,
                    CategoryName      = productDescriptionModel.ProductCategory,
                    AuthorName        = productDescriptionModel.AuthorName,
                    AuthorDescription = productDescriptionModel.AuthorDescription,
                    AuthorImage       = productDescriptionModel.AuthorImageValue,
                    ProductSummary    = productDescriptionModel.ProductSummary,
                    PublisherName     = productDescriptionModel.PublisherName,
                    Edition           = productDescriptionModel.Edition,
                    NumOfPages        = productDescriptionModel.NumofPages,
                    Country           = productDescriptionModel.Country,
                    Language          = productDescriptionModel.Language,
                    ProductId         = productDescriptionModel.ProductId
                };
                await _context.ProductDescriptions.AddAsync(productDescription);

                await _context.SaveChangesAsync();

                return(Ok(productDescription));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        private ProductDescription GetProductType(Warehouse location)
        {
            ProductDescription _ret = new ProductDescription(ProductType.Other, false);

            if (location == null)
            {
                return(_ret);
            }
            switch (location.ProductType)
            {
            case ProductType.Tobacco:
                _ret = new ProductDescription(ProductType.Tobacco, false);
                break;

            case ProductType.IPRTobacco:
                _ret = new ProductDescription(ProductType.IPRTobacco, true);
                break;

            case ProductType.Invalid:
            case ProductType.Cutfiller:
            case ProductType.Cigarette:
            case ProductType.Other:
            default:
                break;
            }
            return(_ret);
        }
Exemple #6
0
        public void FromDataBase(ProductModelProductDescription model)
        {
            ProductModelID       = model.ProductModelID;
            ProductDescriptionID = model.ProductDescriptionID;
            Culture      = model.Culture;
            rowguid      = model.rowguid;
            ModifiedDate = model.ModifiedDate;

            try
            {
                ProductDescription = new ProductDescription()
                {
                    ProductDescriptionID = model.ProductDescription.ProductDescriptionID,
                    Description          = model.ProductDescription.Description,
                    rowguid      = model.ProductDescription.rowguid,
                    ModifiedDate = model.ProductDescription.ModifiedDate
                };

                ProductModel = new ProductModel()
                {
                    ProductModelID     = model.ProductModel.ProductModelID,
                    Name               = model.ProductModel.Name,
                    CatalogDescription = model.ProductModel.CatalogDescription,
                    rowguid            = model.ProductModel.rowguid,
                    ModifiedDate       = model.ProductModel.ModifiedDate
                };
            }
            catch (Exception ex)
            {
            }
        }
        void ProductsLoaded()
        {
            var descList = new List <ProductDescription>(this.productsList.Count);

            foreach (var product in this.productsList)
            {
                string priceString;
                float  price = product.MicrosPrice * 0.000001f;

                if (price < 100)
                {
                    priceString = price.ToString("0.00");
                }
                else
                {
                    priceString = ((int)(price + 0.5f)).ToString();
                }

                var prodMeta = new ProductMetadata(priceString, product.ProductName, product.ProductDesc, product.Currency, (decimal)price);
                ProductDescription prodDesc;

                if (this.purchasedData.TryGetValue(product.ProductId, out var purchaseData))
                {
                    prodDesc = new ProductDescription(product.ProductId, prodMeta, CreateReciept(purchaseData), purchaseData.OrderID);
                }
                else
                {
                    prodDesc = new ProductDescription(product.ProductId, prodMeta);
                }

                descList.Add(prodDesc);
            }

            this.storeEvents.OnProductsRetrieved(descList);
        }
        private void OnProductsRetrieved(Result result)
        {
            this.products = new Dictionary <string, ProductDescription>();

            if (!result.IsSucceeded)
            {
                OnSetupFailed(result.Error.Code + ", " + result.Error.Message);
                return;
            }

            List <IOSProductTemplate> list = IOSInAppPurchaseManager.Instance.Products;

            string globalId = null;
            string storeId  = null;

            for (int i = 0; i < list.Count; i++)
            {
                storeId  = list[i].Id;
                globalId = IAPManager.GetIAPIdentifier(storeId);
                if (!products.ContainsKey(globalId))
                {
                    products.Add(globalId, new ProductDescription(storeId, new ProductMetadata(list[i].LocalizedPrice,
                                                                                               list[i].DisplayName, list[i].Description,
                                                                                               list[i].CurrencyCode, (decimal)list[i].Price)));
                }

                if (PlayerPrefs.HasKey(globalId))
                {
                    products[globalId] = new ProductDescription(storeId, products[globalId].metadata, DBManager.GetReceipt(globalId), "");
                }
            }

            callback.OnProductsRetrieved(products.Values.ToList());
        }
        private void AddProductDescriptions(Product product, ProductViewModel sfProduct)
        {
            var displayName      = sfProduct.Item.Title;
            var shortDescription = sfProduct.Item.Description;
            var longDescription  = sfProduct.Item.Description;

            var desc = new ProductDescription
            {
                CultureCode      = sfProduct.CultureCode,
                DisplayName      = displayName,
                ShortDescription = shortDescription,
                LongDescription  = longDescription
            };

            foreach (var translation in sfProduct.CultureTranslations)
            {
                var productDescription = new ProductDescription()
                {
                    CultureCode      = translation.Key,
                    DisplayName      = translation.Value.Item.Title,
                    ShortDescription = translation.Value.Item.Description,
                    LongDescription  = translation.Value.Item.Description,
                    Product          = product
                };

                product.AddProductDescription(productDescription);
            }

            product.AddProductDescription(desc);
        }
Exemple #10
0
        public override void Init(object[] inputs)
        {
            mManager           = (AFramework.IAP.IAPManager)inputs[0];
            mSystem            = this.gameObject.AddComponent <Sdkbox.IAP>();
            mSystem.androidKey = (string)inputs[1];
            var hackConstructor = typeof(Sdkbox.IAP.Callbacks).GetConstructor(System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance, null, new System.Type[] { }, null);

            mSystem.callbacks       = (Sdkbox.IAP.Callbacks)hackConstructor.Invoke(null);
            mSystem.iOSProducts     = new List <ProductDescription>();
            mSystem.androidProducts = new List <ProductDescription>();

            var currentPackage = mManager.CurrentPackages;

            foreach (var pair in currentPackage)
            {
                var data = pair.Value;
                var item = new ProductDescription();
                item.id         = data.Identifier;
                item.name       = data.Identifier;
                item.consumable = data.Type == eProductType.Consumable;
#if UNITY_IOS
                mSystem.iOSProducts.Add(item);
#else
                mSystem.androidProducts.Add(item);
#endif
            }

            mSystem.callbacks.onProductRequestSuccess.AddListener(SdkboxProductRequestSuccess);
            mSystem.callbacks.onRestored.AddListener((product) => { PurchaseSucceeded(product.id); });
            mSystem.callbacks.onCanceled.AddListener((product) => { PurchaseFailed("Cancel"); });
            mSystem.callbacks.onFailure.AddListener((product, str) => { PurchaseFailed(str); });
        }
Exemple #11
0
        public async Task <IActionResult> UpdateProductDescription(int id, [FromBody] ProductDescription productDescription)
        {
            _logger?.LogDebug($"Method '{nameof(UpdateProductDescription)}' ID: {id}, new description: '{productDescription.Description}' called.");
            if (id < 0)
            {
                return(BadRequest("Bad ID"));
            }
            try
            {
                var productToUpdate = await _productService.GetProductById(id);

                if (productToUpdate == null)
                {
                    return(NotFound());
                }
                await _productService.UpdateDescription(productToUpdate, productDescription.Description);

                _logger?.LogInformation($"Method '{nameof(UpdateProductDescription)}' ID: {id} successfully done.");
                return(NoContent());
            }
            catch (Exception ex)
            {
                _logger?.LogCritical($"Method '{nameof(UpdateProductDescription)}' ID: {id} error: {ex.Message}.");
                throw;
            }
        }
Exemple #12
0
        /// <summary>
        /// Adds the product.
        /// </summary>
        /// <param name="product">The product.</param>
        /// <param name="productDescription">The product description.</param>
        /// <param name="productPhoto">The product photo.</param>
        /// <returns></returns>
        /// <exception cref="NotImplementedException"></exception>
        public async Task EditProduct(Product product, ProductDescription productDescription, ProductPhoto productPhoto)
        {
            using (var transaction = await _context.Database.BeginTransactionAsync())
            {
                try
                {
                    _context.Product.Update(product);
                    await _context.SaveChangesAsync();

                    if (productDescription != null)
                    {
                        _context.ProductDescription.Update(productDescription);
                        await _context.SaveChangesAsync();
                    }

                    if (productPhoto != null)
                    {
                        _context.ProductPhoto.Update(productPhoto);
                        await _context.SaveChangesAsync();
                    }

                    // Commit transaction if all commands succeed, transaction will auto-rollback
                    // when disposed if either commands fails
                    transaction.Commit();
                }
                catch (Exception e)
                {
                    throw e.InnerException;
                }
            }
        }
Exemple #13
0
        public override Product LoadProduct()
        {
            try
            {
                string productCode = this._htmlDoc.DocumentNode.QuerySelector(".product-code-display.pull-left").InnerText.Replace("Termékkód: ", "").Trim();
                string title       = _htmlDoc.DocumentNode.QuerySelector(".page-title").InnerText.ToLower().Trim();
                string brand       = ""; //IMPLEMENT THIS
                string model       = ""; //IMPLEMENT THIS
                int    oldPrice    = Convert.ToInt32(_htmlDoc.DocumentNode
                                                     .SelectSingleNode(".//p[@class = 'product-old-price']/s").InnerText.Replace("\n", "").Replace("&#46;", "").Replace(" Ft", "").Trim());

                int newPrice = Convert.ToInt32(_htmlDoc.DocumentNode
                                               .SelectSingleNode(".//p[@class = 'product-new-price']").InnerText.Replace("\n", "").Replace("&#46;", "").Replace(" Ft", "").Trim());

                int    sale         = Convert.ToInt32(Regex.Replace(_htmlDoc.DocumentNode.SelectSingleNode(".//span[@class = 'product-this-deal']").InnerText, "[^0-9]", ""));
                int    nrOfReviews  = LoadNrOfReviewsPropertyOfProduct(_htmlDoc);
                double starsAverage = LoadStarsAveragePropertyOfProduct(_htmlDoc);

                List <ProductDetail> productDetails     = GetProductDetails();
                ProductDescription   productDescription = GetProductDescription();
                List <ProductReview> productReviews     = GetProductReviews();
                List <ProductImage>  productImages      = GetProductImages();
                //Console.WriteLine(Product.ToString());

                Product = new Product(productCode, webshopName: "EMAG", title, brand, model, oldPrice, newPrice, sale, nrOfReviews, starsAverage, this.ProductPageLink, productDescription,
                                      productDetails, productReviews, productImages, this.CategoryName, this.CategoryLink);

                return(Product);
            }
            catch (ArgumentException)
            {
                throw new ArgumentException("Ran into an error while creating the product");
            }
        }
Exemple #14
0
        private ProductDescription GetProductDescription()
        {
            try
            {
                ProductDescription productDescription  = new ProductDescription();
                string             Description         = string.Empty;
                int      NumberOfPicturesInDescription = 0;
                string[] Images = new string[NumberOfPicturesInDescription];

                var descriptionNode = _htmlDoc.DocumentNode.SelectSingleNode(".//div[@class ='product-page-description-text']");

                foreach (var p in descriptionNode.SelectNodes(".//p"))
                {
                    string pInnerText = p.InnerHtml;
                    if (pInnerText.Contains("\n"))
                    {
                        pInnerText = p.InnerHtml.Replace("\n", "").Trim();
                    }
                    Description += pInnerText;
                }

                return(productDescription);
            }
            catch
            {
                throw new ArgumentException("Ran into an error while creating the product description");
            }
        }
        public void InsertProductPerformanceTest()
        {
            int nProducts         = 50;
            int avgProductPlugins = 30;

            var       store     = new PluginStore();
            Version   vers01    = new Version(0, 1);
            Stopwatch stopWatch = new Stopwatch();
            Random    r         = new Random();
            var       plugins   = store.Plugins.ToList();

            stopWatch.Start();
            // create products
            for (int i = 0; i < nProducts; i++)
            {
                string name = RandomName();
                List <PluginDescription> prodPlugins = new List <PluginDescription>();
                for (int j = 0; j < avgProductPlugins; j++)
                {
                    var selectedPlugin = plugins[r.Next(0, plugins.Count)];
                    if (!prodPlugins.Contains(selectedPlugin))
                    {
                        prodPlugins.Add(selectedPlugin);
                    }
                }
                var prod = new ProductDescription(name, vers01, prodPlugins);
                store.Persist(prod);
            }
            stopWatch.Stop();
            Assert.Inconclusive("Created " + nProducts + " products in " + stopWatch.ElapsedMilliseconds +
                                " ms (" + (double)stopWatch.ElapsedMilliseconds / nProducts + " ms / product )");
        }
Exemple #16
0
        /// <summary>
        /// Deep load all ProductDescription children.
        /// </summary>
        private void Step_03_DeepLoad_Generated()
        {
            using (TransactionManager tm = CreateTransaction())
            {
                int count = -1;
                mock           = CreateMockInstance(tm);
                mockCollection = DataRepository.ProductDescriptionProvider.GetPaged(tm, 0, 10, out count);

                DataRepository.ProductDescriptionProvider.DeepLoading += new EntityProviderBaseCore <ProductDescription, ProductDescriptionKey> .DeepLoadingEventHandler(
                    delegate(object sender, DeepSessionEventArgs e)
                {
                    if (e.DeepSession.Count > 3)
                    {
                        e.Cancel = true;
                    }
                }
                    );

                if (mockCollection.Count > 0)
                {
                    DataRepository.ProductDescriptionProvider.DeepLoad(tm, mockCollection[0]);
                    System.Console.WriteLine("ProductDescription instance correctly deep loaded at 1 level.");

                    mockCollection.Add(mock);
                    // DataRepository.ProductDescriptionProvider.DeepSave(tm, mockCollection);
                }

                //normally one would commit here
                //tm.Commit();
                //IDisposable will Rollback Transaction since it's left uncommitted
            }
        }
Exemple #17
0
        ///<summary>
        ///  Returns a Typed ProductModelProductDescriptionCulture Entity with mock values.
        ///</summary>
        static public ProductModelProductDescriptionCulture CreateMockInstance_Generated(TransactionManager tm)
        {
            ProductModelProductDescriptionCulture mock = new ProductModelProductDescriptionCulture();

            mock.ModifiedDate = TestUtility.Instance.RandomDateTime();

            //OneToOneRelationship
            Culture mockCultureByCultureId = CultureTest.CreateMockInstance(tm);

            DataRepository.CultureProvider.Insert(tm, mockCultureByCultureId);
            mock.CultureId = mockCultureByCultureId.CultureId;
            //OneToOneRelationship
            ProductDescription mockProductDescriptionByProductDescriptionId = ProductDescriptionTest.CreateMockInstance(tm);

            DataRepository.ProductDescriptionProvider.Insert(tm, mockProductDescriptionByProductDescriptionId);
            mock.ProductDescriptionId = mockProductDescriptionByProductDescriptionId.ProductDescriptionId;
            //OneToOneRelationship
            ProductModel mockProductModelByProductModelId = ProductModelTest.CreateMockInstance(tm);

            DataRepository.ProductModelProvider.Insert(tm, mockProductModelByProductModelId);
            mock.ProductModelId = mockProductModelByProductModelId.ProductModelId;

            // create a temporary collection and add the item to it
            TList <ProductModelProductDescriptionCulture> tempMockCollection = new TList <ProductModelProductDescriptionCulture>();

            tempMockCollection.Add(mock);
            tempMockCollection.Remove(mock);


            return((ProductModelProductDescriptionCulture)mock);
        }
Exemple #18
0
        public async Task <IActionResult> PatchProduct(int id, ProductDescription description)
        {
            Product product = await _context.Products.FindAsync(id);

            if (product == null)
            {
                return(NotFound());
            }

            product.Description = description.Description;

            _context.Entry(product).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ProductExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Exemple #19
0
        ///<summary>
        ///  Update the Typed ProductDescription Entity with modified mock values.
        ///</summary>
        static public void UpdateMockInstance(TransactionManager tm, ProductDescription mock)
        {
            ProductDescriptionTest.UpdateMockInstance_Generated(tm, mock);

            // make any alterations necessary
            // (i.e. for DB check constraints, special test cases, etc.)
            SetSpecialTestData(mock);
        }
        public void ShouldBeValid_WhenNameIsValid(string name)
        {
            var actual = ProductDescription.TryCreate(name);

            Check.That(actual)
            .IsEqualTo(
                Validation.Valid(new ProductDescription(name)));
        }
Exemple #21
0
 //ProductApi/Product
 public string PostProduct(ProductDescription p)
 {
     p.rowguid      = Guid.NewGuid();
     p.ModifiedDate = DateTime.Now;
     db.ProductDescriptions.Add(p);
     db.SaveChanges();
     return("Success");
 }
        public async Task CreateDescription(ProductDescription description)
        {
            description.CreationDate = DateTime.Now;
            description.EditDate     = DateTime.Now;
            await _productDescriptionRepository.Add(description);

            await _productDescriptionRepository.SaveChangesAsync();
        }
Exemple #23
0
 private void ClearProductEditSection()
 {
     OwnerCombo.SelectedItem             = null;
     StatusDescriptionCombo.SelectedItem = null;
     ProductTypeCombo.SelectedItem       = null;
     ZoneDescriptionCombo.SelectedItem   = null;
     ProductDescription.Clear();
     _mainWindowViewController.NewProduct();
 }
 public ProductDescription1(int val)
 {
     EntityManager<ProductDescription> mgrproduct = new EntityManager<ProductDescription>();
     ProductDescription p_dd = new ProductDescription();
     //p_d.ProductDescriptionID = 4;
     p_dd.ProductDescriptionID = val;
     List<ProductDescription> list1 = mgrproduct.Search(p_dd);
     Textbox1.Text = list1[0].Description.ToString();
 }
Exemple #25
0
 private void NewButton_Click(object sender, RoutedEventArgs e)
 {
     OwnerCombo.SelectedItem             = null;
     StatusDescriptionCombo.SelectedItem = null;
     ProductTypeCombo.SelectedItem       = null;
     ZoneDescriptionCombo.SelectedItem   = null;
     ProductDescription.Clear();
     _mainWindowViewController.NewProduct();
 }
 public ActionResult Add(ProductDescription obj)
 {
     Thread.Sleep(3000);
     obj.rowguid      = Guid.NewGuid();
     obj.ModifiedDate = DateTime.Now;
     db.ProductDescriptions.Add(obj);
     db.SaveChanges();
     return(View());
 }
        public void ShouldBeInvalid_WhenEmpty(string name)
        {
            var actual = ProductDescription.TryCreate(name);

            Check.That(actual)
            .IsEqualTo(
                Validation.Invalid <ProductDescription>(
                    new ProductDescription.EmptyValidationError()));
        }
        public void TestProductDescription()
        {
            var prod1 = new ProductDescription("testID", metadata);

            Assert.AreEqual(prod1.storeSpecificId, "testID");
            Assert.AreEqual(prod1.type, ProductType.Consumable);
            Assert.AreEqual(prod1.metadata, metadata);
            Assert.That(prod1.receipt, Is.Null);
            Assert.That(prod1.transactionId, Is.Null);
        }
 /// <summary>
 /// Constructor for a product
 /// </summary>
 /// <param name="title"></param>
 /// <param name="primaryCategory"></param>
 /// <param name="topLevelCategory"></param>
 /// <param name="categoryPath"></param>
 /// <param name="skus"></param>
 /// <param name="description"></param>
 public Product(String title, Int32 primaryCategory, Int32 topLevelCategory, String categoryPath, SKU[] skus, ProductDescription description)
     : this()
 {
     this.SKUs = skus;
     this.Description = description;
     this.Title = title;
     this.PrimaryCategory = primaryCategory;
     this.TopLevelCategory = topLevelCategory;
     this.CategoryPath = categoryPath;
 }
        public void Edit(ProductDescription productDescription)
        {
            ProductDescription editProductDescription = context.ProductDescription.Find(productDescription.Id);

            editProductDescription.Name      = productDescription.Name;
            editProductDescription.Text      = productDescription.Text;
            editProductDescription.IsShort   = productDescription.IsShort;
            editProductDescription.ProductId = productDescription.ProductId;
            context.SaveChanges();
        }
Exemple #31
0
        /// <summary>
        /// Check the foreign key dal methods.
        /// </summary>
        private void Step_10_FK_Generated()
        {
            using (TransactionManager tm = CreateTransaction())
            {
                ProductDescription entity = CreateMockInstance(tm);
                bool result = DataRepository.ProductDescriptionProvider.Insert(tm, entity);

                Assert.IsTrue(result, "Could Not Test FK, Insert Failed");
            }
        }
Exemple #32
0
 public ActionResult Edit([Bind(Include = "ProductDescriptionID,Description,rowguid,ModifiedDate,isDeleted")] ProductDescription productDescription)
 {
     if (ModelState.IsValid)
     {
         db.Entry(productDescription).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(productDescription));
 }
        // PUT api/awbuildversion/5
        public void Put(ProductDescription value)
        {
            var GetActionType = Request.Headers.Where(x => x.Key.Equals("ActionType")).FirstOrDefault();

            if (GetActionType.Key != null)
            {
                if (GetActionType.Value.ToList()[0].Equals("DELETE"))
                    adventureWorks_BC.ProductDescriptionDelete(value);
                if (GetActionType.Value.ToList()[0].Equals("UPDATE"))
                    adventureWorks_BC.ProductDescriptionUpdate(value);
            }
        }
       public ProductDescription AddProductDescription(decimal basePrice, string description, bool gstFree)
       {
           var pd = new ProductDescription(this, basePrice, description, gstFree);

           if (ProductDescriptions.Contains(pd))
           {
               throw new Exception(" Product already exists");
           }

           ProductDescriptions.Add(pd);
           return pd;
       }
        public void ContructorFromXmlTest()
        {
            string xml = @"<?xml version='1.0' encoding='UTF-8'?>
                <Description>
                        <ArbitraryXml1><Whoa>There</Whoa></ArbitraryXml1>
                        <ArbitraryXml2><Whoa>There</Whoa></ArbitraryXml2>
                        <Summary>
                            <![CDATA[
                                    This is a summary it can contain HTML markup.
                                    To tell the translation service to ignore some
                                    text, <b>wrap</b> it in a
                                    [do-not-translate]
                                    do not translate
                                    [/do-not-translate]
                                    tag
                                    ]]>

                        </Summary>
                        <Features>
                            <Feature1>Feature 1 &amp; Bold</Feature1>
                            <Feature2>Feature 2</Feature2>
                        </Features>
                    </Description>
            ";

            XDocument document = XDocument.Parse(xml);

            var description = new ProductDescription(document.Element("Description"));

            Assert.AreEqual(Regex.Replace(@"This is a summary it can contain HTML markup.
                To tell the translation service to ignore some
                text, <b>wrap</b> it in a
                [do-not-translate]
                do not translate
                [/do-not-translate]
                tag", @"\s", ""), Regex.Replace(description.Summary, @"\s", ""));

            XElement[] arbitrary = new XElement[] { XElement.Parse("<ArbitraryXml1><Whoa>There</Whoa></ArbitraryXml1>"), XElement.Parse("<ArbitraryXml2><Whoa>There</Whoa></ArbitraryXml2>") };
            Dictionary<String, String> features = new Dictionary<String, String>() { {"Feature1", "Feature 1 & Bold"}, {"Feature2", "Feature 2"} };

            for (int i = 0; i < arbitrary.Length; i++)
            {
                Assert.AreEqual(arbitrary[i].ToString(SaveOptions.None), description.ArbitraryElements[i].ToString(SaveOptions.None));
            }

            foreach (string featureKey in features.Keys)
            {
                Assert.AreEqual(features[featureKey], description.Features[featureKey]);
            }
        }
        public void ProductConstructorTest()
        {
            String title = "Title";
            Int32 primaryCategory = 5;
            Int32 topLevelCategory = 10;
            String categoryPath = "Some Path";
            SKU[] skus = new SKU[5];
            var features = new Dictionary<String, String>() {{"F1", "V1"}, {"F2", "V2"}, {"F3", "V3"}};
            ProductDescription description = new ProductDescription(arbitraryElements: null, features: features);

            Product product = new Product(title, primaryCategory, topLevelCategory, categoryPath, skus, description);

            Assert.AreEqual(product.Title, title);
            Assert.AreEqual(product.PrimaryCategory, primaryCategory);
            Assert.AreEqual(product.TopLevelCategory, topLevelCategory);
            Assert.AreEqual(product.CategoryPath, categoryPath);
            Assert.AreEqual(product.SKUs.Count, skus.Length);
            Assert.AreEqual(product.Description.Features.Count, features.Count);
        }
 partial void InsertProductDescription(ProductDescription instance);
 public void SaveToProductDescription(ProductDescription productDescription)
 {
     _context.Entry(productDescription).State = (EntityState) (productDescription.ProductDescriptionID == 0 ? EntityState.Added : EntityState.Modified);
        _context.SaveChanges();
 }
        //Если продукт новый, то нужно добавить ему описание и все это дело связать с моделью
        public ActionResult CreateProductDescription(int productId, int productModelId)
        {
            var product = _repository.Products.FirstOrDefault(x => x.ProductID == productId);
            var productModel =
                _productModelRepository.ProductModels.FirstOrDefault(x => x.ProductModelID == productModelId); //модель

            var productDescription = new ProductDescription { Description = String.Empty, ModifiedDate = DateTime.Now, rowguid = Guid.NewGuid() }; // создадим новое описание

            _productDescription.SaveToProductDescription(productDescription); //сохраним его

            var productModelProductDescription = new ProductModelProductDescription { Culture = "en    ", ModifiedDate = DateTime.Now, ProductDescriptionID = productDescription.ProductDescriptionID, ProductModelID = productModel.ProductModelID, rowguid = Guid.NewGuid() };

            productModel.ProductModelProductDescription.Add(productModelProductDescription);
            _productModelRepository.SaveToProductModel(productModel);

            return RedirectToAction("Index");
        }
 public void AddToProductDescriptions(ProductDescription productDescription)
 {
     base.AddObject("ProductDescriptions", productDescription);
 }
 public static ProductDescription CreateProductDescription(int productDescriptionID, string description, global::System.Guid rowguid, global::System.DateTime modifiedDate)
 {
     ProductDescription productDescription = new ProductDescription();
     productDescription.ProductDescriptionID = productDescriptionID;
     productDescription.Description = description;
     productDescription.rowguid = rowguid;
     productDescription.ModifiedDate = modifiedDate;
     return productDescription;
 }
 partial void UpdateProductDescription(ProductDescription instance);
    public void PersistProductTest() {
      Version vers01 = new Version(0, 1);
      PluginStore target = new PluginStore();

      #region persist a product without plugins to the db
      {
        string prodName = RandomName();
        int oldCount = target.Products.Count();
        ProductDescription product = new ProductDescription(prodName, vers01);
        target.Persist(product);
        int newCount = target.Products.Count();
        Assert.AreEqual(oldCount + 1, newCount);
      }
      #endregion

      #region persist a product with the same name and version as an existant product
      {
        string prodName = RandomName();
        int oldCount = target.Products.Count();
        ProductDescription product = new ProductDescription(prodName, vers01);
        target.Persist(product);
        int newCount = target.Products.Count();
        Assert.AreEqual(oldCount + 1, newCount);

        // write a product with same name and version
        oldCount = target.Products.Count();
        product = new ProductDescription(prodName, vers01);
        target.Persist(product);
        newCount = target.Products.Count();

        // make sure that the old entry was updated
        Assert.AreEqual(oldCount, newCount);

        // write a product with same name and different version
        oldCount = target.Products.Count();
        product = new ProductDescription(prodName, new Version(0, 2));
        target.Persist(product);
        newCount = target.Products.Count();

        // make sure that a new entry was created
        Assert.AreEqual(oldCount + 1, newCount);
      }
      #endregion

      #region try to persist a product referencing an non-existant plugin and check the expected exception
      {
        // try to persist a product referencing a non-existant plugin
        string prodName = RandomName();
        string pluginName = RandomName();
        var plugin = new PluginDescription(pluginName, vers01);
        var product = new ProductDescription(prodName, vers01, Enumerable.Repeat(plugin, 1));
        try {
          target.Persist(product);
          Assert.Fail("persist should fail with ArgumentException");
        }
        catch (ArgumentException) {
          // this is expected
          Assert.IsTrue(true, "expected exception");
        }
      }
      #endregion

      #region persist a product with a single plugin reference
      {
        string prodName = RandomName();
        string pluginName = RandomName();
        var plugin = new PluginDescription(pluginName, vers01);
        var product = new ProductDescription(prodName, vers01, Enumerable.Repeat(plugin, 1));

        // persist the plugin first
        int oldCount = target.Products.Count();
        target.Persist(plugin, enc.GetBytes("Zipped " + plugin.Name));
        target.Persist(product);
        int newCount = target.Products.Count();
        // make sure the store went through
        Assert.AreEqual(oldCount + 1, newCount);
        // retrieve the product and check if the plugin list was stored/retrieved correctly
        var dbProd = target.Products.Where(p => p.Name == prodName).Single();
        Assert.AreEqual(dbProd.Plugins.Count(), 1);
        Assert.AreEqual(dbProd.Plugins.First().Name, pluginName);
      }
      #endregion

      #region update the plugin list of an existing product
      {
        string prodName = RandomName();
        string plugin1Name = RandomName();
        var plugin1 = new PluginDescription(plugin1Name, vers01);
        var product = new ProductDescription(prodName, vers01, Enumerable.Repeat(plugin1, 1));

        // persist the plugin first
        int oldCount = target.Products.Count();
        target.Persist(plugin1, enc.GetBytes("Zipped " + plugin1.Name));
        target.Persist(product);
        int newCount = target.Products.Count();
        // make sure the store went through
        Assert.AreEqual(oldCount + 1, newCount);

        var plugin2Name = RandomName();
        var plugin2 = new PluginDescription(plugin2Name, vers01);
        target.Persist(plugin2, enc.GetBytes("Zipped " + plugin2.Name));
        product = new ProductDescription(prodName, vers01, new PluginDescription[] { plugin1, plugin2 });
        oldCount = target.Products.Count();
        target.Persist(product);
        newCount = target.Products.Count();
        // make sure that a new entry was not created
        Assert.AreEqual(oldCount, newCount);

        // check the plugin list of the product
        var dbProduct = target.Products.Where(p => p.Name == prodName).Single();
        Assert.AreEqual(dbProduct.Plugins.Count(), 2);
      }
      #endregion

      #region insert a product which references the same plugin twice and check if the correct exception is thrown
      {
        string prodName = RandomName();
        string plugin1Name = RandomName();
        var plugin1 = new PluginDescription(plugin1Name, vers01);
        var product = new ProductDescription(prodName, vers01, Enumerable.Repeat(plugin1, 2));

        // persist the plugin first
        target.Persist(plugin1, enc.GetBytes("Zipped " + plugin1.Name));
        try {
          target.Persist(product);
          Assert.Fail("Expected ArgumentException");
        }
        catch (ArgumentException) {
          Assert.IsTrue(true, "Expected exception was thrown.");
        }
      }
      #endregion
    }
 partial void DeleteProductDescription(ProductDescription instance);
 // POST api/awbuildversion
 public void Post(ProductDescription value)
 {
     adventureWorks_BC.ProductDescriptionAdd(value);
 }
        public void ToXmlStringTest()
        {
            var description = new ProductDescription(
                arbitraryElements: new XElement[] { XElement.Parse("<ArbitraryXml1><Whoa>There</Whoa></ArbitraryXml1>"), XElement.Parse("<ArbitraryXml2><Whoa>There</Whoa></ArbitraryXml2>") },
                features: new Dictionary<String, String>() { {"Feature1", "Feature 1 & Bold"}, {"Feature2", "Feature 2"} },
                summary: @"This is a summary it can contain HTML markup.
                To tell the translation service to ignore some
                text, <b>wrap</b> it in a
                [do-not-translate]
                do not translate
                [/do-not-translate]
                tag");

            String xml = @"

                    <Description>
                        <ArbitraryXml1><Whoa>There</Whoa></ArbitraryXml1>
                        <ArbitraryXml2><Whoa>There</Whoa></ArbitraryXml2>
                        <Summary>
                            <![CDATA[
                                    This is a summary it can contain HTML markup.
                                    To tell the translation service to ignore some
                                    text, <b>wrap</b> it in a
                                    [do-not-translate]
                                    do not translate
                                    [/do-not-translate]
                                    tag
                                    ]]>

                        </Summary>
                        <Features>
                            <Feature1>Feature 1 &amp; Bold</Feature1>
                            <Feature2>Feature 2</Feature2>
                        </Features>
                    </Description>

            ";

            Assert.AreEqual(Regex.Replace(xml, @"\s", ""), Regex.Replace(description.ToXmlString(), @"\s", ""));
        }
    public void InsertProductPerformanceTest() {
      int nProducts = 50;
      int avgProductPlugins = 30;

      var store = new PluginStore();
      Version vers01 = new Version(0, 1);
      Stopwatch stopWatch = new Stopwatch();
      Random r = new Random();
      var plugins = store.Plugins.ToList();
      stopWatch.Start();
      // create products
      for (int i = 0; i < nProducts; i++) {
        string name = RandomName();
        List<PluginDescription> prodPlugins = new List<PluginDescription>();
        for (int j = 0; j < avgProductPlugins; j++) {
          var selectedPlugin = plugins[r.Next(0, plugins.Count)];
          if (!prodPlugins.Contains(selectedPlugin)) prodPlugins.Add(selectedPlugin);
        }
        var prod = new ProductDescription(name, vers01, prodPlugins);
        store.Persist(prod);
      }
      stopWatch.Stop();
      Assert.Inconclusive("Created " + nProducts + " products in " + stopWatch.ElapsedMilliseconds +
        " ms (" + (double)stopWatch.ElapsedMilliseconds / nProducts + " ms / product )");
    }