// PUT: api/Component/5 public string Put(int id, HttpRequestMessage value) { try { Component component = new Component(); component = (from p in db.Components where p.Component_ID == id select p).First(); string message = HttpContext.Current.Server.UrlDecode(value.Content.ReadAsStringAsync().Result).Substring(5); JObject json = JObject.Parse(message); JObject cmpDetails = (JObject)json["component"]; JArray supplierDetails = (JArray)json["suppliers"]; component.Quantity = (int)cmpDetails["Quantity"]; component.Unit_Price = (decimal)cmpDetails["Unit_Price"]; component.Description = (string)cmpDetails["Description"]; component.Dimension = (string)cmpDetails["Dimension"]; component.Name = (string)cmpDetails["Name"]; component.Min_Stock = (int)cmpDetails["Min_Stock"]; string errorString = "false|"; bool error = false; if ((from t in db.Components where t.Name == component.Name && t.Component_ID != id select t).Count() != 0) { error = true; errorString += "The Component name entered already exists on the system. "; } if (error) { return(errorString); } db.Component_Supplier.RemoveRange(db.Component_Supplier.Where(x => x.Component_ID == id)); foreach (JObject supplier in supplierDetails) { Component_Supplier cs = new Component_Supplier(); cs.Component_ID = id; cs.Supplier_ID = (int)supplier["Supplier_ID"]; cs.is_preferred = Convert.ToBoolean(Convert.ToInt32(supplier["Is_Prefered"])); cs.unit_price = (decimal)supplier["unit_price"]; db.Component_Supplier.Add(cs); } db.SaveChanges(); return("true|Component successfully updated."); } catch (Exception e) { ExceptionLog.LogException(e, "ComponentController PUT"); return("false|An error has occured updating the Component on the system."); } }
// PUT: api/Supplier/5 public string Put(int id, HttpRequestMessage value) { try { Model.Supplier supplier = new Model.Supplier(); supplier = (from p in db.Suppliers where p.Supplier_ID == id select p).First(); string message = HttpContext.Current.Server.UrlDecode(value.Content.ReadAsStringAsync().Result).Substring(5); JObject json = JObject.Parse(message); JObject supplierDetails = (JObject)json["supplier"]; JArray componentDetails = (JArray)json["components"]; JArray partTypeDetails = (JArray)json["parts"]; JArray RawMaterialDetails = (JArray)json["raw"]; supplier.Name = (string)supplierDetails["Name"]; supplier.Address = (string)supplierDetails["Address"]; supplier.City = (string)supplierDetails["City"]; supplier.Zip = (string)supplierDetails["Zip"]; supplier.Bank_Account_Number = (string)supplierDetails["Bank_Account_Number"]; supplier.Bank_Branch = (string)supplierDetails["Bank_Branch"]; supplier.Bank_Name = (string)supplierDetails["Bank_Name"]; supplier.Email = (string)supplierDetails["Email"]; supplier.Contact_Number = (string)supplierDetails["Contact_Number"]; supplier.Status = Convert.ToBoolean(supplierDetails["Status"]); supplier.Province_ID = (int)supplierDetails["Province_ID"]; supplier.Bank_Reference = (string)supplierDetails["Bank_Reference"]; supplier.Contact_Name = (string)supplierDetails["Contact_Name"]; supplier.Foreign_Bank = Convert.ToBoolean(supplierDetails["Foreign_Bank"]); string errorString = "false|"; bool error = false; if ((from t in db.Suppliers where t.Name == supplier.Name && t.Supplier_ID != id select t).Count() != 0) { error = true; errorString += "The Supplier name entered already exists on the system. "; } if ((from t in db.Suppliers where t.Contact_Name == supplier.Contact_Name && t.Supplier_ID != id select t).Count() != 0) { error = true; errorString += "The Contact Name entered already exists on the system. "; } if ((from t in db.Suppliers where t.Email == supplier.Email && t.Supplier_ID != id select t).Count() != 0) { error = true; errorString += "The Contact Email entered already exists on the system. "; } if ((from t in db.Suppliers where t.Contact_Number == supplier.Contact_Number && t.Supplier_ID != id select t).Count() != 0) { error = true; errorString += "The Contact Number entered already exists on the system. "; } if ((from t in db.Suppliers where (t.Address == supplier.Address && t.City == supplier.City && t.Zip == supplier.Zip) && t.Supplier_ID != id select t).Count() != 0) { error = true; errorString += "The Supplier Address entered already exists on the system. "; } if ((from t in db.Suppliers where (t.Bank_Account_Number == supplier.Bank_Account_Number && t.Bank_Branch == supplier.Bank_Branch) && t.Supplier_ID != id select t).Count() != 0) { error = true; errorString += "The Supplier Banking details entered already exists on the system. "; } if (error) { return(errorString); } db.Component_Supplier.RemoveRange(db.Component_Supplier.Where(x => x.Supplier_ID == id)); if (componentDetails != null) { foreach (JObject comp in componentDetails) { Component_Supplier cs = new Component_Supplier(); cs.Component_ID = (int)comp["Component_ID"]; cs.Supplier_ID = id; cs.is_preferred = Convert.ToBoolean(Convert.ToInt32(comp["Is_Prefered"])); cs.unit_price = (decimal)comp["unit_price"]; db.Component_Supplier.Add(cs); } } db.Part_Supplier.RemoveRange(db.Part_Supplier.Where(x => x.Supplier_ID == id)); if (partTypeDetails != null) { foreach (JObject part in partTypeDetails) { Part_Supplier ps = new Part_Supplier(); ps.Part_Type_ID = (int)part["Part_Type_ID"]; ps.Supplier_ID = id; ps.Is_Prefered = Convert.ToBoolean(Convert.ToInt32(part["Is_Prefered"])); ps.unit_price = (decimal)part["unit_price"]; db.Part_Supplier.Add(ps); } } db.Raw_Material_Supplier.RemoveRange(db.Raw_Material_Supplier.Where(x => x.Supplier_ID == id)); if (RawMaterialDetails != null) { foreach (JObject raw in RawMaterialDetails) { Raw_Material_Supplier rms = new Raw_Material_Supplier(); rms.Raw_Material_ID = (int)raw["Raw_Material_ID"]; rms.Supplier_ID = id; rms.Is_Prefered = Convert.ToBoolean(Convert.ToInt32(raw["Is_Prefered"])); rms.unit_price = (decimal)raw["unit_price"]; db.Raw_Material_Supplier.Add(rms); } } db.SaveChanges(); return("true|Supplier successfully updated."); } catch (Exception e) { ExceptionLog.LogException(e, "SupplierController PUT"); return("false|An error has occured updating the Suplier on the system."); } }
// POST: api/SupplierQuote public string Post(HttpRequestMessage value) { try { Model.Supplier_Quote supplier = new Model.Supplier_Quote(); string message = HttpContext.Current.Server.UrlDecode(value.Content.ReadAsStringAsync().Result).Substring(5); JObject json = JObject.Parse(message); JObject supplierDetails = (JObject)json["quote"]; JArray componentDetails = (JArray)json["components"]; JArray partTypeDetails = (JArray)json["parts"]; JArray RawMaterialDetails = (JArray)json["raw"]; int key = db.Supplier_Quote.Count() == 0 ? 1 : (from t in db.Supplier_Quote orderby t.Supplier_Quote_ID descending select t.Supplier_Quote_ID).First() + 1; supplier.Supplier_Quote_ID = key; supplier.Supplier_Quote_Serial = (string)supplierDetails["Supplier_Quote_Reference"]; supplier.Supplier_Quote_Date = (DateTime)supplierDetails["Supplier_Quote_Date"]; supplier.Supplier_ID = (int)supplierDetails["Supplier_ID"]; supplier.Supplier_Quote_Expiry_Date = (DateTime)supplierDetails["Supplier_Quote_Expiry_Date"]; db.Supplier_Quote.Add(supplier); if (componentDetails != null) { foreach (JObject comp in componentDetails) { Supplier_Quote_Component cs = new Supplier_Quote_Component(); cs.Component_ID = (int)comp["Component_ID"]; cs.Supplier_Quote_ID = key; cs.Quantity_Requested = (int)comp["Quantity"]; cs.Price = (decimal)comp["Price"]; Component_Supplier comp2 = new Component_Supplier(); comp2 = (from d in db.Component_Supplier where d.Supplier_ID == supplier.Supplier_ID && d.Component_ID == cs.Component_ID select d).First(); comp2.unit_price = cs.Price; db.Supplier_Quote_Component.Add(cs); } } if (partTypeDetails != null) { foreach (JObject part in partTypeDetails) { Supplier_Quote_Detail_Part ps = new Supplier_Quote_Detail_Part(); ps.Part_Type_ID = (int)part["Part_Type_ID"]; ps.Supplier_Quote_ID = key; ps.Quantity = (int)part["Quantity"]; ps.Price = (decimal)part["Price"]; Part_Supplier part2 = new Part_Supplier(); part2 = (from d in db.Part_Supplier where d.Supplier_ID == supplier.Supplier_ID && d.Part_Type_ID == ps.Part_Type_ID select d).First(); part2.unit_price = ps.Price; db.Supplier_Quote_Detail_Part.Add(ps); } } if (RawMaterialDetails != null) { foreach (JObject raw in RawMaterialDetails) { Supplier_Quote_Detail_Raw_Material rms = new Supplier_Quote_Detail_Raw_Material(); rms.Raw_Material_ID = (int)raw["Raw_Material_ID"]; rms.Supplier_Quote_ID = key; rms.Quantity = (int)raw["Quantity"]; rms.Price = (decimal)raw["Price"]; rms.Dimension = (string)raw["Dimension"]; Raw_Material_Supplier raw2 = new Raw_Material_Supplier(); raw2 = (from d in db.Raw_Material_Supplier where d.Supplier_ID == supplier.Supplier_ID && d.Raw_Material_ID == rms.Raw_Material_ID select d).First(); raw2.unit_price = rms.Price; db.Supplier_Quote_Detail_Raw_Material.Add(rms); } } db.SaveChanges(); return("true|Supplier Quote #" + key + " successfully added."); } catch (Exception e) { ExceptionLog.LogException(e, "SupplierQuoteController POST"); return("false|An error has occured adding the Supplier Quote to the system."); } }