public string test(string para01, string para02) { string id = para01; string pro_id = para02; PLAN pLAN = db.PLAN.Find(id); if (pLAN != null) { return("1"); } PRODUCT_ATTRIBUTE pRODUCT = db.PRODUCT_ATTRIBUTE.Find(pro_id); if (pRODUCT == null) { return("2"); } PLAN plAN = db.PLAN.Find(pro_id); if (pRODUCT != null) { return("3"); } return("4"); }
public JsonResult creatRecord(string para01, string para02, string para03) { var b_id = para01; int num; int.TryParse(para02, out num); var date = Convert.ToDateTime(para03); SALES_LOT sALES_LOT = new SALES_LOT(); PRODUCT pRODUCT = db.PRODUCT.Find(b_id); sALES_LOT.PRODUCT = pRODUCT; PRODUCT_ATTRIBUTE pRODUCT_ATTRIBUTE = db.PRODUCT_ATTRIBUTE.Find(pRODUCT.PRODUCT_ID); sALES_LOT.BATCH_ID = b_id; sALES_LOT.PRODUCT.PRODUCT_ID = pRODUCT.PRODUCT_ID; sALES_LOT.PRODUCT.PRODUCT_ATTRIBUTE.PRODUCT_NAME = pRODUCT_ATTRIBUTE.PRODUCT_NAME; sALES_LOT.LOT_NUMBER = num; sALES_LOT.MONEY = num * pRODUCT_ATTRIBUTE.SELL_PRICE * pRODUCT.DISCOUNT; sALES_LOT.LOT_DATE = date; db.SALES_LOT.Add(sALES_LOT); db.SaveChanges(); var list = db.SALES_LOT.Select(n => new { BATCH_ID = n.BATCH_ID, PRODUCT_ID = n.PRODUCT.PRODUCT_ID, PRODUCT_NAME = n.PRODUCT.PRODUCT_ATTRIBUTE.PRODUCT_NAME, LOT_NUMBER = n.LOT_NUMBER, MONEY = n.MONEY, LOT_DATE = n.LOT_DATE }); return(Json(new { code = 0, msg = "", count = 1000, data = list }, JsonRequestBehavior.AllowGet)); }
public ActionResult DeleteConfirmed(string id) { PRODUCT_ATTRIBUTE pRODUCT_ATTRIBUTE = db.PRODUCT_ATTRIBUTE.Find(id); db.PRODUCT_ATTRIBUTE.Remove(pRODUCT_ATTRIBUTE); db.SaveChanges(); return(RedirectToAction("Index")); }
private void saveAttributes(PRODUCT product) { string prodAttrID, attrValID, availability; PRODUCT_ATTRIBUTE prodAttr; int id; foreach (ListViewDataItem item in lvAttributeValues.Items) { prodAttrID = attrValID = availability = String.Empty; prodAttrID = ((HiddenField)item.FindControl("prodAttrID")).Value; attrValID = ((HiddenField)item.FindControl("attrValID")).Value; availability = ((TextBox)item.FindControl("txtAvailability")).Text; id = 0; prodAttr = new PRODUCT_ATTRIBUTE(); if (!String.IsNullOrEmpty(prodAttrID) && !String.IsNullOrEmpty(attrValID) && Int32.TryParse(prodAttrID, out id)) { // if availability is 0 and the attribute is never associated to this product, value is not considered if (availability == "0" && id == 0) { continue; } ddlAttributes.Visible = false; prodAttr.Availability = Int32.Parse(availability); prodAttr.AttributeValueID = Int32.Parse(attrValID); prodAttr.ProductID = product.ID; // old version from previous retrieval prodAttr.Version = (byte[])lvAttributeValues.DataKeys[item.DataItemIndex].Value; if (id != 0) { // not new prodAttr.ID = id; ApplicationContext.Current.Products.UpdateProductAttribute(prodAttr); } else { // new, quantity is set only this time prodAttr.Quantity = prodAttr.Availability; ApplicationContext.Current.Products.AddProductAttribute(prodAttr); ((HiddenField)item.FindControl("prodAttrID")).Value = prodAttr.ID.ToString(); ((Label)item.FindControl("lblQuantity")).Text = prodAttr.Quantity.ToString(); } } } // the list view is updated to reflect new versions after update List <PRODUCT_ATTRIBUTE> attributes = ApplicationContext.Current.Products.GetProductAttributes(ProductID); if (attributes.Count > 0) { populateAttributeValues(attributes.First().D_ATTRIBUTE_VALUE.AttributeID, attributes); updPanelAttributes.Update(); } }
public void UpdateProductAttribute(PRODUCT_ATTRIBUTE Attribute, bool Attach = true) { if (Attach) { Context.PRODUCT_ATTRIBUTE.Attach(Attribute); } var entry = Context.ObjectStateManager.GetObjectStateEntry(Attribute); entry.SetModifiedProperty("Availability"); }
public void UpdateProductAttribute(PRODUCT_ATTRIBUTE Attribute) { _productDAO.UpdateProductAttribute(Attribute); Context.SaveChanges(); // EF maintains objects in context, so if during the same request the same object is read, it will not be loaded from db // but instead the context version will be used. Here the quantity property isn't updated, so context will have a 0 value for it // a refresh is needed to get the last version Context.Refresh(RefreshMode.StoreWins, Attribute); }
public ActionResult Edit([Bind(Include = "PRODUCT_ID,SUPPLIER_ID,PRODUCT_NAME,EXP,PURCHASE_PRICE,SELL_PRICE,TOTAL")] PRODUCT_ATTRIBUTE pRODUCT_ATTRIBUTE) { if (ModelState.IsValid) { db.Entry(pRODUCT_ATTRIBUTE).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.SUPPLIER_ID = new SelectList(db.SUPPLIER, "SUPPLIER_ID", "SUPPLIER_NAME", pRODUCT_ATTRIBUTE.SUPPLIER_ID); return(View(pRODUCT_ATTRIBUTE)); }
public void Update(SHOPPING_CART Entity, int PreviousQuantity) { PRODUCT_ATTRIBUTE prodAttr = _productDAO.GetProductAttributeById(Entity.ProdAttrID); Context.PRODUCT_ATTRIBUTE.Detach(prodAttr); if (PreviousQuantity != Entity.Quantity) { int difference = Entity.Quantity - PreviousQuantity; // using the version that was initially retrieved from db // if another user modified this record an OptimisticConcurrencyException will be raised only if the new quantity is greater than the old // so there is the risk of a negative availability // if difference is negative, products are being "returned to warehouse" so the // concurrency check is not needed. if ((prodAttr.Availability - difference) < 0) { //TODO think what to do with version // set the version that was read when the product-attribute was first retrieved from user interface // the entity must be detached in order to set it's concurrency-check attribute (version in this case) prodAttr.Version = Entity.ProductAttributeVersion; } prodAttr.Availability -= difference; _productDAO.UpdateProductAttribute(prodAttr); } Entity.PRODUCT_ATTRIBUTE = null; _shoppingCartDAO.Update(Entity); try { if (prodAttr.Availability < 0) { throw new System.Data.OptimisticConcurrencyException("Product availability negative."); } Context.SaveChanges(); } catch (System.Data.OptimisticConcurrencyException) { // when an optimistic exception is raised, the old quantity is restored the old quantity Entity.Quantity = PreviousQuantity; throw; } finally { Context.Refresh(RefreshMode.StoreWins, prodAttr); Context.Refresh(RefreshMode.StoreWins, Entity); Entity.PRODUCT_ATTRIBUTE = prodAttr; // setting the new version for further modifications Entity.ProductAttributeVersion = prodAttr.Version; } }
private void updAvailListInOptimisticScenario(DropDownList ddl, int prodAttrId, int alreadyInCart, int newQuantity, LinkButton lnk) { List <int> qtyList; PRODUCT_ATTRIBUTE prodAttr = ApplicationContext.Current.Products.GetProductAvailability(prodAttrId, out qtyList, alreadyInCart); if (!qtyList.Contains(newQuantity)) { ddl.SelectedValue = alreadyInCart.ToString(); lnk.Text = alreadyInCart.ToString(); lblMessage.Text = Resources.Lang.InsufficientAvailabilityMessage; CartSession.Find(c => c.ProductAttributeId == prodAttrId).Quantity = alreadyInCart; } }
// GET: PRODUCT_ATTRIBUTE/Details/5 public ActionResult Details(string id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } PRODUCT_ATTRIBUTE pRODUCT_ATTRIBUTE = db.PRODUCT_ATTRIBUTE.Find(id); if (pRODUCT_ATTRIBUTE == null) { return(HttpNotFound()); } return(View(pRODUCT_ATTRIBUTE)); }
// GET: PRODUCT_ATTRIBUTE/Edit/5 public ActionResult Edit(string id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } PRODUCT_ATTRIBUTE pRODUCT_ATTRIBUTE = db.PRODUCT_ATTRIBUTE.Find(id); if (pRODUCT_ATTRIBUTE == null) { return(HttpNotFound()); } ViewBag.SUPPLIER_ID = new SelectList(db.SUPPLIER, "SUPPLIER_ID", "SUPPLIER_NAME", pRODUCT_ATTRIBUTE.SUPPLIER_ID); return(View(pRODUCT_ATTRIBUTE)); }
public void Delete(SHOPPING_CART Entity) { // first "put back" the product that was in cart // version is not needed as the availability is incremented, so no risk PRODUCT_ATTRIBUTE prodAttr = _productDAO.GetProductAttributeById(Entity.ProdAttrID); prodAttr.Availability += Entity.Quantity; _productDAO.UpdateProductAttribute(prodAttr, false); // second remove item from cart _shoppingCartDAO.Delete(Entity, false); // then save if everything was successful Context.SaveChanges(); }
public void Delete(string id) { if (id == null) { return; } PRODUCT_ATTRIBUTE pRODUCT_ATTRIBUTE = db.PRODUCT_ATTRIBUTE.Find(id); if (pRODUCT_ATTRIBUTE == null) { return; } db.PRODUCT_ATTRIBUTE.Remove(pRODUCT_ATTRIBUTE); db.SaveChanges(); }
public JsonResult editRecord(string para01, string para02, string para03, string para04, string para05, string para06, string para07) { string p_id = para01; string name = para02; string s_id = para03; string p_price = para04; string s_price = para05; string exp = para06; string total = para07; int p_p; int.TryParse(p_price, out p_p); int s_p; int.TryParse(s_price, out s_p); int int_exp; int.TryParse(exp, out int_exp); int int_tot; int.TryParse(total, out int_tot); PRODUCT_ATTRIBUTE newPRODUCT_ATTRIBUTE = db.PRODUCT_ATTRIBUTE.Find(p_id); newPRODUCT_ATTRIBUTE.PRODUCT_NAME = name; newPRODUCT_ATTRIBUTE.SUPPLIER_ID = s_id; newPRODUCT_ATTRIBUTE.PURCHASE_PRICE = p_p; newPRODUCT_ATTRIBUTE.SELL_PRICE = s_p; newPRODUCT_ATTRIBUTE.EXP = int_exp; newPRODUCT_ATTRIBUTE.TOTAL = int_tot; db.Entry(newPRODUCT_ATTRIBUTE).State = EntityState.Modified; try { db.SaveChanges(); } catch (Exception ex) { throw; } var list = db.PRODUCT_ATTRIBUTE.Select(n => new { PRODUCT_ID = n.PRODUCT_ID, PRODUCT_NAME = n.PRODUCT_NAME, SUPPLIER_ID = n.SUPPLIER_ID, PURCHASE_PRICE = n.PURCHASE_PRICE, SELL_PRICE = n.SELL_PRICE, EXP = n.EXP, TOTAL = n.TOTAL }); return(Json(new { code = 0, msg = "", count = 1000, data = list }, JsonRequestBehavior.AllowGet)); }
protected void rptDetails_ItemCommand(object source, RepeaterCommandEventArgs e) { if (e.CommandSource is LinkButton) { LinkButton lnk = e.CommandSource as LinkButton; if (!String.IsNullOrWhiteSpace(lnk.CommandArgument)) { int prodAttrID; if (Int32.TryParse(lnk.CommandArgument, out prodAttrID)) { if (lnk.ID == "lnkEdit") { RepeaterItem item = (RepeaterItem)lnk.NamingContainer; DropDownList ddlQty = (DropDownList)item.FindControl("ddlQty"); ddlQty.Visible = true; lnk.Visible = false; List <int> qtyList; PRODUCT_ATTRIBUTE prodAttr = ApplicationContext.Current.Products.GetProductAvailability(prodAttrID, out qtyList, Int32.Parse(lnk.Text)); // updating version SessionCart cart = CartSession.Find(c => c.ProductAttributeId == prodAttrID); cart.ProductAttributeVersion = prodAttr.Version; ddlQty.DataSource = qtyList; ddlQty.DataBind(); ddlQty.SelectedValue = lnk.Text; } else if (lnk.ID == "lnkRemove") { ApplicationContext.Current.Carts.DeleteById(CartSession.First().Id, prodAttrID); DataBind(); } if (CartSession == null || CartSession.Count == 0) { lblMessage.Text = Resources.Lang.EmptyCartLabel; rptDetails.Visible = false; } else { lblMessage.Text = String.Empty; } } } } }
public JsonResult Create(string para01, string para02, string para03, string para04, string para05, string para06, string para07) { string p_id = para01; string name = para02; string s_id = para03; string p_price = para04; string s_price = para05; string exp = para06; string total = para07; int p_p; int.TryParse(p_price, out p_p); int s_p; int.TryParse(s_price, out s_p); int int_exp; int.TryParse(exp, out int_exp); int int_tot; int.TryParse(total, out int_tot); PRODUCT_ATTRIBUTE pRODUCT_ATTRIBUTE = db.PRODUCT_ATTRIBUTE.Find(p_id); PRODUCT_ATTRIBUTE newPRODUCT_ATTRIBUTE = new PRODUCT_ATTRIBUTE(); newPRODUCT_ATTRIBUTE.PRODUCT_ID = p_id; newPRODUCT_ATTRIBUTE.PRODUCT_NAME = name; newPRODUCT_ATTRIBUTE.SUPPLIER_ID = s_id; newPRODUCT_ATTRIBUTE.PURCHASE_PRICE = p_p; newPRODUCT_ATTRIBUTE.SELL_PRICE = s_p; newPRODUCT_ATTRIBUTE.EXP = int_exp; newPRODUCT_ATTRIBUTE.TOTAL = int_tot; if (pRODUCT_ATTRIBUTE == null) { db.PRODUCT_ATTRIBUTE.Add(newPRODUCT_ATTRIBUTE); db.SaveChanges(); } var list = db.PRODUCT_ATTRIBUTE.Select(n => new { PRODUCT_ID = n.PRODUCT_ID, PRODUCT_NAME = n.PRODUCT_NAME, SUPPLIER_ID = n.SUPPLIER_ID, PURCHASE_PRICE = n.PURCHASE_PRICE, SELL_PRICE = n.SELL_PRICE, EXP = n.EXP, TOTAL = n.TOTAL }); return(Json(new { code = 0, msg = "", count = 1000, data = list }, JsonRequestBehavior.AllowGet)); }
public void Insert(SHOPPING_CART Entity) { PRODUCT_ATTRIBUTE prodAttr = _productDAO.GetProductAttributeById(Entity.ProdAttrID); Context.PRODUCT_ATTRIBUTE.Detach(prodAttr); prodAttr.Availability -= Entity.Quantity; if (prodAttr.Availability < 0) { // partial verification, the exception is raised only if the resulting availability is less than 0 // using the version that was initially retrieved from db // if another user modified this record an OptimisticConcurrencyException will be raised prodAttr.Version = Entity.ProductAttributeVersion; } _productDAO.UpdateProductAttribute(prodAttr); _shoppingCartDAO.Insert(Entity); try { if (prodAttr.Availability < 0) { throw new System.Data.OptimisticConcurrencyException("Product availability negative."); } Context.SaveChanges(); } catch (System.Data.OptimisticConcurrencyException ex) { throw; } finally { Context.Refresh(RefreshMode.StoreWins, prodAttr); Entity.PRODUCT_ATTRIBUTE = prodAttr; // setting the new version for further modifications Entity.ProductAttributeVersion = prodAttr.Version; } }
protected void ddlSize_SelectedIndexChanged(object sender, EventArgs e) { DropDownList ddl = sender as DropDownList; int prodAttrId; if (ddl.SelectedValue != "-1") { if (Int32.TryParse(ddl.SelectedValue, out prodAttrId)) { List <int> qtyList; PRODUCT_ATTRIBUTE prodAttr = ApplicationContext.Current.Products.GetProductAvailability(prodAttrId, out qtyList); Version = prodAttr.Version; ddlQuantity.Enabled = true; ddlQuantity.DataSource = qtyList; ddlQuantity.DataBind(); lnkAddToBasket.Enabled = true; updPanelDDL.Update(); } } }
public PRODUCT_ATTRIBUTE GetProductAvailability(int AttributeValueID, out List <int> AvailabilityList, int?AlreadyInCart = null) { PRODUCT_ATTRIBUTE prodAttr = Context.PRODUCT_ATTRIBUTE.Where(p => p.ID == AttributeValueID).FirstOrDefault(); int itemNr = 0; if ((prodAttr.Availability >= Configuration.MaxOrderQuantityPerProduct && !AlreadyInCart.HasValue) || (AlreadyInCart.HasValue && AlreadyInCart.Value < Configuration.MaxOrderQuantityPerProduct && (prodAttr.Availability + AlreadyInCart.Value) >= Configuration.MaxOrderQuantityPerProduct)) { itemNr = Configuration.MaxOrderQuantityPerProduct; } else if (AlreadyInCart.HasValue && AlreadyInCart.Value >= Configuration.MaxOrderQuantityPerProduct) { itemNr = AlreadyInCart.Value; } else if (prodAttr.Availability > 0 || (AlreadyInCart.HasValue && prodAttr.Availability + AlreadyInCart.Value < Configuration.MaxOrderQuantityPerProduct)) { if (AlreadyInCart.HasValue) { itemNr = prodAttr.Availability + AlreadyInCart.Value; } else { itemNr = prodAttr.Availability; } } AvailabilityList = new List <int>(); if (itemNr > 0) { for (int i = 1; i <= itemNr; i++) { AvailabilityList.Add(i); } } return(prodAttr); }
protected void rptDetails_ItemDataBound(object sender, RepeaterItemEventArgs e) { RepeaterItem item = e.Item; // we need only items, footer and header aren't considered if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { DropDownList ddlSize = (DropDownList)item.FindControl("ddlSize"); SHOPPING_CART cart = (SHOPPING_CART)item.DataItem; // loading size ddl, actually it's not possible to modify the choosen size List <FZAttributeAvailability> list; // = ApplicationContext.Current.Products.GetProductAttributeValues(cart.ProductID.Value); list = new List <FZAttributeAvailability>(); list.Insert(0, new FZAttributeAvailability() { Id = cart.ProdAttrID, Value = cart.ProductAttribute }); ddlSize.DataSource = list; ddlSize.DataBind(); ddlSize.SelectedValue = cart.ProdAttrID.ToString(); List <int> qtyList; PRODUCT_ATTRIBUTE prodAttr = ApplicationContext.Current.Products.GetProductAvailability(cart.ProdAttrID, out qtyList, cart.Quantity); DropDownList ddlQty = (DropDownList)item.FindControl("ddlQty"); ddlQty.DataSource = qtyList; ddlQty.DataBind(); ddlQty.SelectedValue = cart.Quantity.ToString(); } else if (e.Item.ItemType == ListItemType.Footer) { // total amount in footer Label lblSubTotal = (Label)item.FindControl("lblSubTotal"); lblSubTotal.Text = TotalAmount().ToString("N2"); } }
public void AddProductAttribute(PRODUCT_ATTRIBUTE Attribute) { Context.PRODUCT_ATTRIBUTE.AddObject(Attribute); }
public void AddProductAttribute(PRODUCT_ATTRIBUTE Attribute) { _productDAO.AddProductAttribute(Attribute); Context.SaveChanges(); }
protected void lnkAddToBasket_Click(object sender, EventArgs e) { string CartID = String.Empty; Guid g = Guid.NewGuid(); UniqueIdGenerator unique = UniqueIdGenerator.GetInstance(); string cartId = unique.GetBase32UniqueId(g.ToByteArray(), 20).ToLower(); if (CartSession == null || CartSession.Count == 0) { CartID = cartId; CartSession = new List <SessionCart>(); } else { List <SessionCart> cSession = CartSession.OrderByDescending(c => c.DateAdded).ToList(); SessionCart sessionCart = cSession.First(); if (sessionCart.DateAdded.AddMinutes(Configuration.CartExpirationValue) < DateTime.Now) { RefreshCart(); CartID = cartId; } else { CartID = CartSession.First().Id; } } SHOPPING_CART cart = new SHOPPING_CART(); cart.ID = CartID; cart.FrontEnd = true; cart.CampaignID = CampaignID; cart.CustomerID = CurrentCustomer.Id; cart.DateAdded = DateTime.Now; cart.ProductID = ProductID; int num = 0; if (!Int32.TryParse(ddlSize.SelectedValue, out num)) { return; } cart.ProdAttrID = num; num = 0; if (!Int32.TryParse(ddlQuantity.SelectedValue, out num) || num == 0) { return; } cart.Quantity = num; // the versions list of lists is created each time the product popup is shown, and destroyed each time it is closed if (Version != null) { cart.ProductAttributeVersion = Version; } else { throw new ApplicationException("Session is compromised! Cannot proceed."); } SessionCart sC; try { // already in the cart if (CartSession != null && CartSession.Count > 0 && (sC = CartSession.Find(c => c.ProductAttributeId == cart.ProdAttrID)) != null) { // sum with old quantity cart.Quantity += sC.Quantity; ApplicationContext.Current.Carts.Update(cart, sC.Quantity); // updating session with last quantity and last prod-attr version sC.Quantity = cart.Quantity; sC.ProductAttributeVersion = cart.ProductAttributeVersion; } else { ApplicationContext.Current.Carts.Insert(cart); sC = new SessionCart(cart); CartSession.Add(sC); } TotalAmount = ApplicationContext.Current.Carts.GetShoppingCartTotalAmount(CartID); } catch (Exception ex) { //TODO log error Log(ex, ex.Message, ex.StackTrace, "Product.AddToCart"); List <int> qtyList; PRODUCT_ATTRIBUTE prodAttr = ApplicationContext.Current.Products.GetProductAvailability(cart.ProdAttrID, out qtyList); Version = prodAttr.Version; ddlQuantity.DataSource = qtyList; ddlQuantity.DataBind(); if (!qtyList.Contains(cart.Quantity)) { lblMessage.Text = Resources.Lang.InsufficientAvailabilityMessage; } if (qtyList.Count == 0) { ddlQuantity.Enabled = false; lnkAddToBasket.Enabled = false; loadProductAttributes(); } //refreshing the size ddl loadProductAttributes(); updPanelDDL.Update(); return; } Version = null; Response.Redirect("/cart/mycart/"); }
private void setAttributes(List <CATEGORY> categoriesList, PRODUCT product, FZExcelProduct exProd) { // TODO when different attributes used, this should be changed to be dynamic! int?sizeAttribute = categoriesList.FirstOrDefault().AttributeID; List <D_ATTRIBUTE_VALUE> attrValueList = _attributeDAO.GetAttributeValues(sizeAttribute.Value); PRODUCT_ATTRIBUTE prodAttr; int availability = 0; int attrValId = 0; // TODO this should be generalized for other attributes // XS size if (int.TryParse(exProd.SizeXS, out availability) && availability != 0) { attrValId = attrValueList.Where(a => a.Value.Equals("XS")).FirstOrDefault().ID; prodAttr = new PRODUCT_ATTRIBUTE() { AttributeValueID = attrValId, ProductID = product.ID, Availability = availability, Quantity = availability, }; AddProductAttribute(prodAttr); } // S size if (int.TryParse(exProd.SizeS, out availability) && availability != 0) { attrValId = attrValueList.Where(a => a.Value.Equals("S")).FirstOrDefault().ID; prodAttr = new PRODUCT_ATTRIBUTE() { AttributeValueID = attrValId, ProductID = product.ID, Availability = availability, Quantity = availability, }; AddProductAttribute(prodAttr); } // M size if (int.TryParse(exProd.SizeM, out availability) && availability != 0) { attrValId = attrValueList.Where(a => a.Value.Equals("M")).FirstOrDefault().ID; prodAttr = new PRODUCT_ATTRIBUTE() { AttributeValueID = attrValId, ProductID = product.ID, Availability = availability, Quantity = availability, }; AddProductAttribute(prodAttr); } // L size if (int.TryParse(exProd.SizeL, out availability) && availability != 0) { attrValId = attrValueList.Where(a => a.Value.Equals("L")).FirstOrDefault().ID; prodAttr = new PRODUCT_ATTRIBUTE() { AttributeValueID = attrValId, ProductID = product.ID, Availability = availability, Quantity = availability, }; AddProductAttribute(prodAttr); } // XL size if (int.TryParse(exProd.SizeXL, out availability) && availability != 0) { attrValId = attrValueList.Where(a => a.Value.Equals("XL")).FirstOrDefault().ID; prodAttr = new PRODUCT_ATTRIBUTE() { AttributeValueID = attrValId, ProductID = product.ID, Availability = availability, Quantity = availability, }; AddProductAttribute(prodAttr); } // XXL size if (int.TryParse(exProd.SizeXXL, out availability) && availability != 0) { attrValId = attrValueList.Where(a => a.Value.Equals("XXL")).FirstOrDefault().ID; prodAttr = new PRODUCT_ATTRIBUTE() { AttributeValueID = attrValId, ProductID = product.ID, Availability = availability, Quantity = availability, }; AddProductAttribute(prodAttr); } }