public object Save([FromBody] MST_UWD_PRODUCT product) { try { ProductMdl.save_product(product); return(new { state = true, message = "Product successfully Saved" }); } catch (Exception e) { return(new { state = false, message = e }); } }
public string productsUpadate(JObject jsonData) { using (SibaModel db = new SibaModel()) { if (!ModelState.IsValid) { return(BadRequest(ModelState).ToString()); } try { int prodSysID = 0; //Policy Header update //INS_UWD_POLICY_HEAD polHead = new INS_UWD_POLICY_HEAD(); MST_UWD_PRODUCT product = new MST_UWD_PRODUCT(); dynamic objPro = jsonData; foreach (dynamic proddata in objPro.prod) { prodSysID = Convert.ToInt32(proddata.PDT_SYS_D); //var getPolSysID = from polSysID in db.INS_UWD_POLICY_HEAD // where polSysID.POLH_SYS_ID == polHeadSysID // select polSysID.POLH_SYS_ID; var prodToUpdate = db.MST_UWD_PRODUCT.Find(prodSysID); Console.WriteLine("xxxxxxxxxxxx " + prodSysID); if (prodToUpdate != null) { // polhToUpdate.POLH_SYS_ID = polheaddata.POLH_SYS_ID; prodToUpdate.PDT_CLASS = proddata.PDT_CLASS; prodToUpdate.PDT_CODE = proddata.PDT_CODE; prodToUpdate.PDT_DESC = proddata.PDT_DESC; prodToUpdate.PDT_NAME = proddata.PDT_NAME; prodToUpdate.PDT_RI_LEVEL = proddata.PDT_RI_LEVEL; prodToUpdate.PDT_SUB_CLASS = proddata.PDT_SUB_CLASS; prodToUpdate.PDT_TERM = proddata.PDT_TERM; prodToUpdate.PDT_STATUS = "A"; db.MST_UWD_PRODUCT.Attach(product); } } ; //====================== Product Covers Section ========================================= List <MST_UWD_PRODUCT_COVERS> updateProCovList = new List <MST_UWD_PRODUCT_COVERS>(); List <MST_UWD_PRODUCT_COVERS> AddNewProCovList = new List <MST_UWD_PRODUCT_COVERS>(); MST_UWD_PRODUCT_COVERS proCov = new MST_UWD_PRODUCT_COVERS(); //To access to the properties in "dot" notation use a dynamic object dynamic objproCov = jsonData; // Loop over the array (Prod = json object for product data from view foreach (dynamic proCovData in objproCov.prodCov) { int proSysID = Convert.ToInt32(proCovData.PDT_SYS_ID); string CovStatus = proCovData.PCV_STATUS; var proCovToUpdate = db.MST_UWD_PRODUCT_COVERS.Find(proSysID); if (proCovToUpdate != null && CovStatus == "A") { //vehToUpdate.VEH_SYS_ID = vehData.VEH_SYS_ID; // proCovToUpdate.PDT_SYS_ID= proCovData.PDT_SYS_ID; proCovToUpdate.PCV_PDT_CODE = proCovData.PCV_PDT_CODE; proCovToUpdate.PCV_LOAD = proCovData.PCV_LOAD; proCovToUpdate.PCV_DISC = proCovData.PCV_DISC; proCovToUpdate.PCV_DFT = proCovData.PCV_DFT; proCovToUpdate.PCV_DEF_RATE = proCovData.PCV_DEF_RATE; proCovToUpdate.PCV_COV_CODE = proCovData.PCV_COV_CODE; proCovToUpdate.PCV_STATUS = "A"; db.Entry(proCov).State = EntityState.Modified; db.MST_UWD_PRODUCT_COVERS.Attach(proCov); } //Delelete Vehicle Risk if it is marked for deletion else if (proCovToUpdate != null && CovStatus == "D") { db.MST_UWD_PRODUCT_COVERS.Remove(proCovToUpdate); } //check if Vehicle is newlly added, then add to the Entity else if (proCovToUpdate == null && CovStatus == "U") { MST_UWD_PRODUCT_COVERS addProCov = new MST_UWD_PRODUCT_COVERS { PCV_COV_CODE = proCovData.PCV_COV_CODE, PCV_DFT = proCovData.PCV_DFT, PCV_DEF_RATE = proCovData.PCV_DEF_RATE, PCV_DISC = proCovData.PCV_DISC, PCV_LOAD = proCovData.PCV_LOAD, PCV_PDT_CODE = proCovData.PCV_PDT_CODE, PCV_SI = proCovData.PCV_SI, PCV_STATUS = "A", }; AddNewProCovList.Add(addProCov); } foreach (MST_UWD_PRODUCT_COVERS proList in AddNewProCovList) { db.MST_UWD_PRODUCT_COVERS.Add(proList); } } ; ////====================== Product Conditions And Clauses ===================== List <MST_UWD_PRODUCT_COND_CLAUSES> updateProductClaList = new List <MST_UWD_PRODUCT_COND_CLAUSES>(); List <MST_UWD_PRODUCT_COND_CLAUSES> AddNewProClaList = new List <MST_UWD_PRODUCT_COND_CLAUSES>(); MST_UWD_PRODUCT_COND_CLAUSES productClause = new MST_UWD_PRODUCT_COND_CLAUSES(); //To access to the properties in "dot" notation use a dynamic object dynamic objRcovers = jsonData; // Loop over the array (Prod = json object for product data from view foreach (dynamic claData in objRcovers.prodClau) { int ClaSysID = Convert.ToInt32(claData.PDT_SYS_ID); string ClauStatus = claData.PCC_STATUS; var ClausesToUpdate = db.MST_UWD_PRODUCT_COND_CLAUSES.Find(ClaSysID); if (ClausesToUpdate != null && ClauStatus == "A") { //ClausesToUpdate.RCOV_SYS_ID = rcovData.RCOV_SYS_ID; // ClausesToUpdate.PCC_SYS_ID = claData.PCC_SYS_ID; ClausesToUpdate.PCC_TYPE = claData.PCC_TYPE; ClausesToUpdate.PCC_PDT_CODE = claData.PCC_PDT_CODE; ClausesToUpdate.PCC_DDESCRIPTION = claData.PCC_DDESCRIPTION; ClausesToUpdate.PCC_CRTE_BY = claData.PCC_CRTE_BY; ClausesToUpdate.PCC_CRTE_DATE = System.DateTime.Now; ClausesToUpdate.PCC_MOD_BY = claData.PCC_MOD_BY; ClausesToUpdate.PCC_CRTE_DATE = System.DateTime.Now; ClausesToUpdate.PCC_STATUS = "A"; db.Entry(productClause).State = EntityState.Modified; db.MST_UWD_PRODUCT_COND_CLAUSES.Attach(productClause); } //Delelete Vehicle Risk if it is marked for deletion else if (ClausesToUpdate != null && ClauStatus == "D") { db.MST_UWD_PRODUCT_COND_CLAUSES.Remove(ClausesToUpdate); } //check if Vehicle is newlly added, then add to the Entity else if (ClausesToUpdate == null && ClauStatus == "U") { MST_UWD_PRODUCT_COND_CLAUSES addProCluas = new MST_UWD_PRODUCT_COND_CLAUSES() { // PCC_SYS_ID = claData.PCC_SYS_ID, // PDT_SYS_ID = claData.PDT_SYS_ID, PCC_DDESCRIPTION = claData.PCC_DDESCRIPTION, PCC_TYPE = claData.PCC_TYPE, PCC_CRTE_BY = claData.PCC_CRTE_BY, PCC_MOD_BY = claData.PCC_MOD_BY, PCC_STATUS = "A", PCC_PDT_CODE = claData.PCC_PDT_CODE, PCC_CRTE_DATE = System.DateTime.Now, PCC_MOD_DATE = System.DateTime.Now, }; AddNewProClaList.Add(addProCluas); } foreach (MST_UWD_PRODUCT_COND_CLAUSES addedProCla in AddNewProClaList) { db.MST_UWD_PRODUCT_COND_CLAUSES.Add(addedProCla); } } ; string status = ""; int dbState = db.SaveChanges(); if (dbState > 0) { //success status = "S"; } else { //Failed to update System.Console.WriteLine("UUUUUUUUUUUUUUU " + prodSysID); status = "F"; } return(status); } catch (DbEntityValidationException ex) { string errorMessages = string.Join("; ", ex.EntityValidationErrors.SelectMany(x => x.ValidationErrors).Select(x => x.ErrorMessage)); throw new DbEntityValidationException(errorMessages); } } }