public ActionResult Edit_Moa_Partner(MOAPartnerEdited input) { try { string id = Session["moa_detail_id"].ToString(); moa.editMOAPartner(input, int.Parse(id)); return(Json("", JsonRequestBehavior.AllowGet)); } catch (Exception ex) { return(Json("", JsonRequestBehavior.AllowGet)); } }
public void editMOAPartner(MOAPartnerEdited input, int moa_id) { using (DbContextTransaction transaction = db.Database.BeginTransaction()) { try { DateTime sign_date = DateTime.ParseExact(input.sign_date_string, "dd/MM/yyyy", CultureInfo.InvariantCulture); //edit MOAPartner MOAPartner mp = db.MOAPartners.Where(x => x.moa_partner_id == input.moa_partner_id).First(); mp.moa_start_date = sign_date; mp.partner_id = db.Partners.Where(x => x.partner_name == input.partner_name).First().partner_id; db.Entry(mp).State = EntityState.Modified; db.SaveChanges(); //get old records of PartnerScope in MOA string sql_old_partnerScope = @"select t1.partner_scope_id,partner_id,scope_id from IA_Collaboration.PartnerScope t1 inner join IA_Collaboration.MOAPartnerScope t2 on t1.partner_scope_id = t2.partner_scope_id where moa_id = @moa_id"; List <PartnerScope> listOldPS = db.Database.SqlQuery <PartnerScope>(sql_old_partnerScope, new SqlParameter("moa_id", moa_id)).ToList(); //reset old records of scopes of partner. foreach (PartnerScope token in listOldPS.ToList()) { PartnerScope objPS = db.PartnerScopes.Where(x => x.partner_scope_id == token.partner_scope_id).First(); //decrese refer_count in PartnerScope objPS.reference_count -= 1; db.Entry(objPS).State = EntityState.Modified; //delete record of MOUPartnerScope. db.MOAPartnerScopes.Remove(db.MOAPartnerScopes.Where(x => x.partner_scope_id == token.partner_scope_id).First()); } //add new records of scopes of partner. foreach (int tokenScope in input.scopes.ToList()) { PartnerScope objPS = db.PartnerScopes.Where(x => x.partner_id == mp.partner_id && x.scope_id == tokenScope).FirstOrDefault(); int partner_scope_id = 0; if (objPS == null) //add new to PartnerScope { db.PartnerScopes.Add(new PartnerScope { partner_id = mp.partner_id, scope_id = tokenScope, reference_count = 0 }); //checkpoint 3 db.SaveChanges(); PartnerScope newObjPS = db.PartnerScopes.Where(x => x.partner_id == mp.partner_id && x.scope_id == tokenScope).FirstOrDefault(); partner_scope_id = newObjPS.partner_scope_id; } else { objPS.reference_count += 1; db.Entry(objPS).State = EntityState.Modified; partner_scope_id = objPS.partner_scope_id; } db.MOAPartnerScopes.Add(new MOAPartnerScope { partner_scope_id = partner_scope_id, moa_id = moa_id }); } db.SaveChanges(); transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); throw ex; } } }