public void editMOUBasicInfo(int mou_id, MOUBasicInfo newBasicInfo) { using (DbContextTransaction transaction = db.Database.BeginTransaction()) { try { DateTime mou_end_date = DateTime.ParseExact(newBasicInfo.mou_end_date_string, "dd/MM/yyyy", CultureInfo.InvariantCulture); //update basicInfo MOU mou = db.MOUs.Find(mou_id); mou.mou_code = newBasicInfo.mou_code; mou.mou_end_date = mou_end_date; mou.mou_note = newBasicInfo.mou_note; mou.evidence = newBasicInfo.evidence; mou.office_id = newBasicInfo.office_id; db.Entry(mou).State = EntityState.Modified; db.SaveChanges(); //update MOUStatusHistory MOUStatusHistory m = new MOUStatusHistory(); m.mou_status_id = newBasicInfo.mou_status_id; m.reason = newBasicInfo.reason; m.mou_id = mou_id; m.datetime = DateTime.Now; db.MOUStatusHistories.Add(m); db.SaveChanges(); transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); throw ex; } } return; }
public void deleteMOU(int mou_id) { using (DbContextTransaction transaction = db.Database.BeginTransaction()) { try { MOU mou = db.MOUs.Find(mou_id); mou.is_deleted = true; db.Entry(mou).State = EntityState.Modified; db.SaveChanges(); transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); throw ex; } } }
private void updateNotiCount(NotificationInfo noti) { using (DbContextTransaction transaction = db.Database.BeginTransaction()) { try { foreach (string mouCode in noti.ExpiredMOUCode) { MOU mou = db.MOUs.Where(x => x.mou_code.Equals(mouCode)).First(); mou.noti_count += 1; db.Entry(mou).State = EntityState.Modified; } db.SaveChanges(); transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); throw ex; } } }
public void addMOU(MOUAdd input) { using (DbContextTransaction transaction = db.Database.BeginTransaction()) { try { //add MOU //Check Partner //add MOUPartner => //check or add PartnerScope //add MOUPartnerScope //add MOUPartnerSpecialization //add MOUStatusHistory DateTime mou_end_date = DateTime.ParseExact(input.BasicInfo.mou_end_date, "dd/MM/yyyy", CultureInfo.InvariantCulture); MOU m = new MOU { mou_code = input.BasicInfo.mou_code, mou_end_date = mou_end_date, mou_note = input.BasicInfo.mou_note, evidence = input.BasicInfo.evidence is null ? "" : input.BasicInfo.evidence, office_id = input.BasicInfo.office_id, account_id = 1, add_time = DateTime.Now, is_deleted = false, noti_count = 0 }; db.MOUs.Add(m); //checkpoint 1 db.SaveChanges(); MOU objMOU = db.MOUs.Where(x => x.mou_code == input.BasicInfo.mou_code).First(); //Add MOUStatusHistory db.MOUStatusHistories.Add(new ENTITIES.MOUStatusHistory { datetime = DateTime.Now, reason = input.BasicInfo.reason, mou_id = objMOU.mou_id, mou_status_id = input.BasicInfo.mou_status_id }); foreach (PartnerInfo item in input.PartnerInfo.ToList()) { int partner_id_item = 0; //new partner if (item.partner_id == 0) { db.Partners.Add(new ENTITIES.Partner { partner_name = item.partnername_add, website = item.website_add, address = item.address_add, country_id = 13 }); //checkpoint 2 db.SaveChanges(); ENTITIES.Partner objPartner = db.Partners.Where(x => x.partner_name == item.partnername_add).First(); partner_id_item = objPartner.partner_id; } else //old partner { partner_id_item = item.partner_id; } //add to MOUPartner via each partner of MOU db.MOUPartners.Add(new ENTITIES.MOUPartner { mou_id = objMOU.mou_id, partner_id = partner_id_item, mou_start_date = DateTime.ParseExact(item.sign_date_mou_add, "dd/MM/yyyy", CultureInfo.InvariantCulture), contact_point_name = item.represent_add, contact_point_email = item.email_add, contact_point_phone = item.phone_add }); //PartnerScope and MOUPartnerScope foreach (int tokenScope in item.coop_scope_add.ToList()) { PartnerScope objPS = db.PartnerScopes.Where(x => x.partner_id == partner_id_item && x.scope_id == tokenScope).FirstOrDefault(); int partner_scope_id = 0; if (objPS == null) { db.PartnerScopes.Add(new PartnerScope { partner_id = partner_id_item, scope_id = tokenScope, reference_count = 0 }); //checkpoint 3 db.SaveChanges(); PartnerScope newObjPS = db.PartnerScopes.Where(x => x.partner_id == partner_id_item && 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.MOUPartnerScopes.Add(new MOUPartnerScope { partner_scope_id = partner_scope_id, mou_id = objMOU.mou_id }); } //checkpoint 4 db.SaveChanges(); //MOUPartnerSpe MOUPartner objMOUPartner = db.MOUPartners.Where(x => (x.mou_id == objMOU.mou_id && x.partner_id == partner_id_item)).First(); foreach (int tokenSpe in item.specialization_add.ToList()) { db.MOUPartnerSpecializations.Add(new MOUPartnerSpecialization { mou_partner_id = objMOUPartner.mou_partner_id, specialization_id = tokenSpe, }); } } db.SaveChanges(); transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); throw ex; } } }