public ActionResult Add(int partID = 0, string shortDesc = "", int status = 0, string oldPartNumber = "", int priceCode = 0, int classID = 0, string btnSubmit = "", string btnContinue = "", string upc = "", bool featured = false, int? ACESPartTypeID = null) { CurtDevDataContext db = new CurtDevDataContext(); List<string> error_messages = new List<string>(); Part new_part = new Part{ partID = partID, shortDesc = shortDesc, status = status, oldPartNumber = oldPartNumber, priceCode = priceCode, classID = classID, dateAdded = DateTime.Now, dateModified = DateTime.Now, featured = featured, ACESPartTypeID = ACESPartTypeID }; // Validate the partID and shortDesc fields if(partID == 0){ error_messages.Add("You must enter a part number."); } if(shortDesc.Length == 0){ error_messages.Add("You must enter a short description."); } if (upc.Trim().Length == 0) { error_messages.Add("You must enter a UPC."); } int existing_part = 0; // Make sure we don't have a product with this partID existing_part = (from p in db.Parts where p.partID.Equals(partID) select p).Count(); if (existing_part != 0) { error_messages.Add("This part number exists."); } if (error_messages.Count == 0) { // No errors, add the part try { db.Parts.InsertOnSubmit(new_part); db.SubmitChanges(); ProductModels.SaveAttribute(0,new_part.partID, "UPC", upc); db.indexPart(new_part.partID); if (btnContinue != "") { // Redirect to add more part information return RedirectToAction("edit", new { partID = new_part.partID }); } else { // Redirect to product index page return RedirectToAction("index"); } } catch (Exception e) { error_messages.Add(e.Message); } } ViewBag.error_messages = error_messages; // Get all the parts in the database :: This will allow the user to create related parts ViewBag.parts = ProductModels.GetAllParts(); // Get the product classes ViewBag.classes = ProductModels.GetClasses(); return View(); }
public ActionResult Edit(int partID = 0, string shortDesc = "", int status = 0, string oldPartNumber = "", int priceCode = 0, int classID = 0, string btnSubmit = "", string btnContinue = "", string upc = "", bool featured = false, int? ACESPartTypeID = null) { CurtDevDataContext db = new CurtDevDataContext(); List<string> error_messages = new List<string>(); Part part = new Part(); part = (from p in db.Parts where p.partID.Equals(partID) select p).FirstOrDefault<Part>(); part.partID = partID; part.shortDesc = shortDesc; part.status = status; if (status == 900) { // find eMAP pricing and set enforced = 0 Price eMapPrice = db.Prices.Where(x => x.priceType == "eMap" && x.partID == partID).FirstOrDefault<Price>(); if (eMapPrice != null) { eMapPrice.enforced = false; eMapPrice.dateModified = DateTime.Now; db.SubmitChanges(); } } part.oldPartNumber = oldPartNumber; part.priceCode = priceCode; part.classID = classID; part.dateModified = DateTime.Now; part.featured = featured; part.ACESPartTypeID = ACESPartTypeID; // Validate the partID and shortDesc fields if (partID == 0) { error_messages.Add("You must enter a part number."); } if (shortDesc.Length == 0) { error_messages.Add("You must enter a short description."); } if (upc.Trim().Length == 0) { error_messages.Add("You must enter a UPC."); } if (error_messages.Count == 0) { // No errors, add the part try { db.SubmitChanges(); if (ProductModels.HasAttribute(partID, "UPC")) { ProductModels.UpdateAttributeByField(partID, "UPC", upc); } else { ProductModels.SaveAttribute(0,partID, "UPC", upc); } db.indexPart(part.partID); if(btnSubmit != ""){ // Redirect to product index page return RedirectToAction("index"); } } catch (Exception e) { error_messages.Add(e.Message); } } // Save the error messages into the bag ViewBag.error_messages = error_messages; // Get the ConvertedPart version of this part object ViewBag.part = ProductModels.GetPart(part.partID); ViewBag.UPC = ProductModels.GetAttribute(part.partID, "UPC"); // Get the product classes ViewBag.classes = ProductModels.GetClasses(); ViewBag.PartTypes = new ACES().GetPartTypes(); ViewBag.active_tab = "info"; return View(); }
public string Clone(int partID = 0, int newPartID = 0, string upc = "", bool categories = false, bool relatedParts = false, bool attributes = false, bool content = false, bool vehicles = false, bool prices = false) { CurtDevDataContext db = new CurtDevDataContext(); List<string> messages = new List<string>(); // Validate the partID and shortDesc fields if (partID == 0) { messages.Add("You must enter a part number."); } if (newPartID == 0) { messages.Add("You must enter a part number."); } if (upc.Trim().Length == 0) { messages.Add("You must enter a UPC."); } int existing_part = 0; // Make sure we don't have a product with this partID existing_part = (from p in db.Parts where p.partID.Equals(newPartID) select p).Count(); if (existing_part != 0) { messages.Add("This part number exists."); } #region clone part if (messages.Count == 0) { // No errors, add the part try { ConvertedPart cp = ProductModels.GetPart(partID); Part new_part = new Part { partID = newPartID, classID = cp.pClass, dateAdded = DateTime.Now, dateModified = DateTime.Now, featured = cp.featured, oldPartNumber = cp.oldPartNumber, priceCode = cp.priceCode, shortDesc = cp.shortDesc, status = cp.status, ACESPartTypeID = cp.ACESPartTypeID }; db.Parts.InsertOnSubmit(new_part); db.SubmitChanges(); messages.Add("Part Added Successfully"); try { ProductModels.SaveAttribute(0,new_part.partID, "UPC", upc); messages.Add("UPC Added Successfully"); } catch (Exception e) { messages.Add(e.Message); } #region clone categories if (categories) { try { List<CatParts> new_catparts = new List<CatParts>(); List<int> catparts = db.CatParts.Where(x => x.partID == partID).Select(x => x.catID).Distinct().ToList(); foreach (int catpart in catparts) { CatParts ncp = new CatParts { catID = catpart, partID = new_part.partID }; new_catparts.Add(ncp); } db.CatParts.InsertAllOnSubmit(new_catparts); db.SubmitChanges(); messages.Add("Categories Cloned Successfully"); } catch { messages.Add("There was a problem cloning the categories."); } } #endregion #region clone Related Parts if (relatedParts) { try { List<RelatedPart> new_relparts = new List<RelatedPart>(); List<RelatedPart> relparts = db.RelatedParts.Where(x => x.partID == partID).ToList<RelatedPart>(); foreach (RelatedPart relpart in relparts) { RelatedPart nrp = new RelatedPart { relatedID = relpart.relatedID, rTypeID = relpart.rTypeID, partID = new_part.partID }; new_relparts.Add(nrp); } db.RelatedParts.InsertAllOnSubmit(new_relparts); db.SubmitChanges(); messages.Add("Related Parts Cloned Successfully"); } catch { messages.Add("There was a problem cloning the related parts."); } } #endregion #region clone Attributes if (attributes) { try { List<PartAttribute> new_attrs = new List<PartAttribute>(); List<PartAttribute> attributelist = db.PartAttributes.Where(x => x.partID == partID).Where(x => x.field.ToLower() != "upc").ToList<PartAttribute>(); foreach (PartAttribute attribute in attributelist) { PartAttribute attr = new PartAttribute { value = attribute.value, field = attribute.field, partID = new_part.partID, sort = attribute.sort }; new_attrs.Add(attr); } db.PartAttributes.InsertAllOnSubmit(new_attrs); db.SubmitChanges(); messages.Add("Attributes Cloned Successfully"); } catch { messages.Add("There was a problem cloning the attributes."); } } #endregion #region clone Content if (content) { try { List<ContentBridge> new_content = new List<ContentBridge>(); List<ContentBridge> contents = (from cb in db.ContentBridges where cb.partID == partID select cb).ToList<ContentBridge>(); foreach (ContentBridge cont in contents) { Content c = db.Contents.Where(x => x.contentID.Equals(cont.contentID)).FirstOrDefault(); Content new_c = new Content { cTypeID = c.cTypeID, text = c.text }; db.Contents.InsertOnSubmit(new_c); db.SubmitChanges(); ContentBridge cb = new ContentBridge { partID = new_part.partID, contentID = new_c.contentID }; db.ContentBridges.InsertOnSubmit(cb); db.SubmitChanges(); } messages.Add("Contents Cloned Successfully"); } catch { messages.Add("There was a problem cloning the contents."); } } #endregion #region clone Vehicles if (vehicles) { try { List<VehiclePart> vehiclelist = db.VehicleParts.Where(x => x.partID == partID).ToList<VehiclePart>(); foreach (VehiclePart vp in vehiclelist) { VehiclePart vehiclepart = new VehiclePart { partID = new_part.partID, vehicleID = vp.vehicleID, drilling = vp.drilling, installTime = vp.installTime, exposed = vp.exposed }; db.VehicleParts.InsertOnSubmit(vehiclepart); db.SubmitChanges(); List<VehiclePartAttribute> new_vpattr = new List<VehiclePartAttribute>(); List<VehiclePartAttribute> vpattrs = db.VehiclePartAttributes.Where(x => x.vPartID == vp.vPartID).ToList<VehiclePartAttribute>(); foreach (VehiclePartAttribute vpa in vpattrs) { VehiclePartAttribute new_vpa = new VehiclePartAttribute { vPartID = vehiclepart.vPartID, value = vpa.value, field = vpa.field, sort = vpa.sort }; new_vpattr.Add(new_vpa); }; db.VehiclePartAttributes.InsertAllOnSubmit(new_vpattr); db.SubmitChanges(); messages.Add("Vehicles Cloned Successfully"); } } catch { messages.Add("There was a problem cloning the vehicles."); } } #endregion #region clone Prices if (prices) { try { List<Price> new_prices = new List<Price>(); List<Price> pricelist = db.Prices.Where(x => x.partID == partID).ToList<Price>(); foreach (Price prc in pricelist) { Price price = new Price { priceType = prc.priceType, price1 = prc.price1, partID = new_part.partID, enforced = prc.enforced }; new_prices.Add(price); } db.Prices.InsertAllOnSubmit(new_prices); db.SubmitChanges(); messages.Add("Prices Cloned Successfully"); } catch { messages.Add("There was a problem cloning the prices."); } } #endregion ImportImages(new_part.partID); db.indexPart(new_part.partID); messages.Add("Part Cloned Successfully."); } catch (Exception e) { messages.Add(e.Message); } } else { messages.Add("Part Clone Failed."); } #endregion return Newtonsoft.Json.JsonConvert.SerializeObject(messages); }
public static string DeleteVehiclePartAttribute(int attrID = 0) { try { // Validate if (attrID <= 0) { throw new Exception("Attribute ID is invalid."); } // Variable Declaration CurtDevDataContext db = new CurtDevDataContext(); VehiclePartAttribute vpa = new VehiclePartAttribute(); vpa = (from p in db.VehiclePartAttributes where p.vpAttrID.Equals(attrID) select p).FirstOrDefault<VehiclePartAttribute>(); int pid = vpa.vPartID; db.VehiclePartAttributes.DeleteOnSubmit(vpa); db.SubmitChanges(); updateVehicleAttributeSort(getVehiclePartAttributeIDs(pid)); db.indexPart(vpa.VehiclePart.partID); UpdatePart(vpa.VehiclePart.partID); return ""; } catch (Exception e) { return e.Message; } }
public static PartAttribute SaveAttribute(int attrID = 0, int partID = 0, string field = "", string value = "") { // Validate fields if (partID <= 0) { throw new Exception("Part ID is invalid."); } if (field.Length <= 0) { throw new Exception("Field is invalid."); } if (value.Length <= 0) { throw new Exception("Value is invalid."); } if (field.ToUpper() == "UPC") { // Validate UPC if (!ValidateUPC(value)) { throw new Exception("UPC exists."); } } // Declare objects CurtDevDataContext db = new CurtDevDataContext(); PartAttribute pa = new PartAttribute(); if (attrID == 0) { // Add New Attribute bool exists = db.PartAttributes.Where(x => x.partID == partID).Where(x => x.field == field).Count() > 0; if (exists) { throw new Exception("This attribute already exists!"); } pa = new PartAttribute { partID = partID, field = field.Trim(), value = value.Trim(), sort = (db.PartAttributes.Where(x => x.partID.Equals(partID)).OrderByDescending(x => x.sort).Select(x => x.sort).FirstOrDefault() + 1) }; // Commit to databse db.PartAttributes.InsertOnSubmit(pa); } else { // Update Existing Attribute // Retrive PartAttribute pa = (from p in db.PartAttributes where p.pAttrID.Equals(attrID) select p).FirstOrDefault<PartAttribute>(); // Update values pa.partID = partID; pa.field = field.Trim(); pa.value = value.Trim(); } // Commit to databse db.SubmitChanges(); UpdateAttributeSort(getAttributeIDs(partID)); db.indexPart(partID); UpdatePart(partID); // Return PartAttribute return pa; }
public static string DeleteVehiclePart(int vehicleID = 0, int partID = 0) { try { if (vehicleID == 0 || partID == 0) { throw new Exception("Invalid data."); } CurtDevDataContext db = new CurtDevDataContext(); VehiclePart vp = new VehiclePart(); List<VehiclePartAttribute> attributes = new List<VehiclePartAttribute>(); vp = (from v in db.VehicleParts where v.vehicleID.Equals(vehicleID) && v.partID.Equals(partID) select v).FirstOrDefault<VehiclePart>(); attributes = (from vpa in db.VehiclePartAttributes join v in db.VehicleParts on vpa.vPartID equals v.vPartID where v.vehicleID == vehicleID && v.partID == partID select vpa).ToList<VehiclePartAttribute>(); db.VehiclePartAttributes.DeleteAllOnSubmit(attributes); db.SubmitChanges(); db.VehicleParts.DeleteOnSubmit(vp); db.SubmitChanges(); db.indexPart(partID); UpdatePart(partID); return ""; } catch (Exception e) { return e.Message; } }
public static void DeleteAttribute(int attrID = 0) { // Validate if (attrID <= 0) { throw new Exception("Attribute ID is invalid."); } // Variable Declaration CurtDevDataContext db = new CurtDevDataContext(); PartAttribute pa = new PartAttribute(); pa = (from p in db.PartAttributes where p.pAttrID.Equals(attrID) select p).FirstOrDefault<PartAttribute>(); int pid = pa.partID; db.PartAttributes.DeleteOnSubmit(pa); db.SubmitChanges(); UpdateAttributeSort(getAttributeIDs(pid)); db.indexPart(pid); UpdatePart(pid); }
public static string AddVehicle(int partID = 0, int vehicleID = 0) { try { CurtDevDataContext db = new CurtDevDataContext(); if (partID > 0 && vehicleID > 0) { List<int> options = getAllCarryOverParts(partID); foreach (int partnum in options) { // Check to make sure a record doesn't already exist for this part and vehicle int existing = (from vp in db.VehicleParts where vp.partID.Equals(partnum) && vp.vehicleID.Equals(vehicleID) select vp).Count(); if (existing == 0) { VehiclePart vp = new VehiclePart { vehicleID = vehicleID, partID = partnum, exposed = "", drilling = "", installTime = 0 }; db.VehicleParts.InsertOnSubmit(vp); db.SubmitChanges(); db.indexPart(partnum); } } UpdatePart(partID); } else { throw new Exception("Invalid partID or vehicleID"); } return ""; } catch (Exception e) { return "{\"error\":\"" + e.Message + "\"}"; } }
internal static void UpdateAttributeByField(int partID = 0, string key = "", string value = "") { CurtDevDataContext db = new CurtDevDataContext(); PartAttribute attribute = (from a in db.PartAttributes where a.partID.Equals(partID) && a.field.ToLower().Equals(key.Trim().ToLower()) select a).FirstOrDefault <PartAttribute>(); attribute.value = value; db.SubmitChanges(); db.indexPart(partID); UpdatePart(partID); }
public static VehiclePart UpdateVehicle(int partID = 0, int vehicleID = 0, string drilling = "", string exposed = "", int installTime = 0) { // Variable initializers CurtDevDataContext db = new CurtDevDataContext(); VehiclePart vp = new VehiclePart(); // Get the VehiclePart that we want to work with vp = (from v in db.VehicleParts where v.vehicleID.Equals(vehicleID) && v.partID.Equals(partID) select v).FirstOrDefault<VehiclePart>(); if (vp == null) { throw new Exception("VehiclePart not found."); } // Update fields and commit to database vp.drilling = drilling; vp.exposed = exposed; vp.installTime = installTime; db.SubmitChanges(); db.indexPart(partID); return vp; }