public int EditKontaktSave(PredpriyatieKontaktJSON kontakt) { using (var ugtu_db = new UGTU_DBDataContext()) { if (kontakt.ValSvyazi != null || kontakt.idNaznach != null) { int idKL = kontakt.IDKontakt; var KL = ugtu_db.KontaktLico.Where(m => m.IDKontaktL == kontakt.IDKontakt).Single(); if (kontakt.FIO != null) { //ФИО if (KL.FIOKontaktLico != null)//если в БД ФИО, редактируем { KL.Otdel = kontakt.Otdel; KL.FIOKontaktLico = kontakt.FIO; KL.idDolznost = AddDolgnost(kontakt.Dolgnost); }else{//добавляем новый KontaktLico KLnew = new KontaktLico() { FIOKontaktLico = kontakt.FIO, Otdel = kontakt.Otdel, idDolznost = kontakt.idDolgnost }; ugtu_db.KontaktLico.InsertOnSubmit(KLnew); ugtu_db.SubmitChanges(); idKL = KLnew.IDKontaktL; } } if (kontakt.FIO == null && kontakt.Otdel != null) { //Отдел if (KL.FIOKontaktLico == null && KL.Otdel != null) //если в БД отдел, доб-ем или берем уже имеющийся { idKL = ugtu_db.KontaktLico.Where(m => m.FIOKontaktLico == null && m.Otdel == kontakt.Otdel).Select(m => m.IDKontaktL).SingleOrDefault(); if (idKL == 0) { KontaktLico KLnew = new KontaktLico() { Otdel = kontakt.Otdel, idDolznost = kontakt.idDolgnost }; ugtu_db.KontaktLico.InsertOnSubmit(KLnew); ugtu_db.SubmitChanges(); idKL = KLnew.IDKontaktL; } ugtu_db.SubmitChanges(); } if (KL.FIOKontaktLico == null && KL.Otdel == null) //если в БД предприятие, доб-ем или берем уже имеющийся { idKL = ugtu_db.KontaktLico.Where(m => m.FIOKontaktLico == null && m.Otdel == kontakt.Otdel).Select(m => m.IDKontaktL).SingleOrDefault(); if (idKL == 0) { KontaktLico KLnew = new KontaktLico() { Otdel = kontakt.Otdel, idDolznost = kontakt.idDolgnost }; ugtu_db.KontaktLico.InsertOnSubmit(KLnew); ugtu_db.SubmitChanges(); idKL = KLnew.IDKontaktL; } ugtu_db.SubmitChanges(); } if (KL.FIOKontaktLico != null) //если в БД ФИО { idKL = ugtu_db.KontaktLico.Where(m => m.FIOKontaktLico == null && m.Otdel == kontakt.Otdel).Select(m => m.IDKontaktL).SingleOrDefault(); if (idKL == 0) { KontaktLico KLnew = new KontaktLico() { Otdel = kontakt.Otdel, idDolznost = kontakt.idDolgnost }; ugtu_db.KontaktLico.InsertOnSubmit(KLnew); ugtu_db.SubmitChanges(); idKL = KLnew.IDKontaktL; } ugtu_db.SubmitChanges(); } } if (kontakt.FIO == null && kontakt.Otdel == null) { //Предприятие idKL = ugtu_db.KontaktLico.Where(m => m.FIOKontaktLico == null && m.Otdel == null).Select(m => m.IDKontaktL).SingleOrDefault(); } //--------------------------------Назначение------------------------------------ var N_KL = ugtu_db.KontaktLico_NaznachKontaktLico.Where(m => m.IDKontaktL == kontakt.IDKontakt && m.IDPredpriyatie == kontakt.IDPred).ToList(); foreach (var naznachKLBD in N_KL) { ugtu_db.KontaktLico_NaznachKontaktLico.DeleteOnSubmit(naznachKLBD); } ugtu_db.SubmitChanges(); if (kontakt.FIO != null || kontakt.Otdel != null) //только для ФИО и отдела (исключаем предприятие) { if (kontakt.idNaznach != null) { foreach (var naznachKL in kontakt.idNaznach) { KontaktLico_NaznachKontaktLico KL_N = new KontaktLico_NaznachKontaktLico() { IDPredpriyatie = kontakt.IDPred, IDKontaktL = idKL, IDNaznachKontaktL = (int)naznachKL }; ugtu_db.KontaktLico_NaznachKontaktLico.InsertOnSubmit(KL_N); } ugtu_db.SubmitChanges(); } } #region Хлам //if (kontakt.idNaznach != null) //{ // foreach (var naznachKL in kontakt.idNaznach) // { // if (!N_KL.Exists(m => m.IDNaznachKontaktL == naznachKL))//если в БД нету, доб-ем // { // KontaktLico_NaznachKontaktLico KL_N = new KontaktLico_NaznachKontaktLico() // { // IDPredpriyatie = kontakt.IDPred, // IDKontaktL = kontakt.IDKontakt, // IDNaznachKontaktL = (int)naznachKL // }; // ugtu_db.KontaktLico_NaznachKontaktLico.InsertOnSubmit(KL_N); // ugtu_db.SubmitChanges(); // } // } // foreach (var naznachKLBD in N_KL) // если в параметрах нету то удаляем. // { // if (!kontakt.idNaznach.Exists(m => m == naznachKLBD.IDNaznachKontaktL)) // { // ugtu_db.KontaktLico_NaznachKontaktLico.DeleteOnSubmit(naznachKLBD); // ugtu_db.SubmitChanges(); // } // } //} //else //очистка БД, в случае пустого списка параметров //{ // foreach (var naznachKLBD in N_KL) // { // if (!kontakt.idNaznach.Exists(m => m == naznachKLBD.IDNaznachKontaktL)) // { // ugtu_db.KontaktLico_NaznachKontaktLico.DeleteOnSubmit(naznachKLBD); // ugtu_db.SubmitChanges(); // } // } //} #endregion //--------------------------------Связи------------------------------------ var S_KL = ugtu_db.KontaktLico_Svyaz.Where(m => m.IDKontaktL == kontakt.IDKontakt && m.IDPredpriyatie == kontakt.IDPred).ToList(); foreach (var svyazKLBD in S_KL) { ugtu_db.KontaktLico_Svyaz.DeleteOnSubmit(svyazKLBD); } ugtu_db.SubmitChanges(); if (kontakt.ValSvyazi != null) { for (int i = 0; i < kontakt.ValSvyazi.Count(); i++) { KontaktLico_Svyaz KL_S = new KontaktLico_Svyaz() { IDKontaktL = idKL, IDTSvyazi = (int)kontakt.idTipSvyazi[i], Znach = kontakt.ValSvyazi[i], IDPredpriyatie = kontakt.IDPred, }; ugtu_db.KontaktLico_Svyaz.InsertOnSubmit(KL_S); } ugtu_db.SubmitChanges(); } #region Хлам //if (kontakt.idTipSvyazi != null) //{ // for (int i = 0; i < kontakt.ValSvyazi.Count();i++ ) // { // if (!S_KL.Exists(m => m.IDTSvyazi == kontakt.idTipSvyazi[i]) && !S_KL.Exists(m => m.Znach == kontakt.ValSvyazi[i]))//если в БД нету, доб-ем // { // KontaktLico_Svyaz KL_S = new KontaktLico_Svyaz() // { // IDKontaktL = kontakt.IDKontakt, // IDTSvyazi = (int)kontakt.idTipSvyazi[i], // Znach = kontakt.ValSvyazi[i], // IDPredpriyatie = kontakt.IDPred, // }; // ugtu_db.KontaktLico_Svyaz.InsertOnSubmit(KL_S); // ugtu_db.SubmitChanges(); // } // else { //если в БД есть, ред-ем // var edit = S_KL.Where(m=>m.) // } // } // foreach (var svyazKLBD in S_KL) // если в параметрах нету то удаляем. // { // if (!kontakt.idTipSvyazi.Exists(m => m == svyazKLBD.IDTSvyazi) && !kontakt.ValSvyazi.Exists(m => m == svyazKLBD.Znach)) // { // ugtu_db.KontaktLico_Svyaz.DeleteOnSubmit(svyazKLBD); // ugtu_db.SubmitChanges(); // } // } //} //else //очистка БД, в случае пустого списка параметров //{ // foreach (var svyazKLBD in S_KL) // { // if (!kontakt.idTipSvyazi.Exists(m => m == svyazKLBD.IDTSvyazi) && !kontakt.ValSvyazi.Exists(m => m == svyazKLBD.Znach)) // { // ugtu_db.KontaktLico_Svyaz.DeleteOnSubmit(svyazKLBD); // ugtu_db.SubmitChanges(); // } // } //} #endregion if (kontakt.FIO == null && KL.FIOKontaktLico!=null) { ugtu_db.KontaktLico.DeleteOnSubmit(KL); ugtu_db.SubmitChanges(); } return 1; } else { return 0; } } }
public int AddPredpriyatieKontaktSave2(PredpriyatieKontaktJSON kontakt) { if (kontakt.IDPred == 0) kontakt.IDPred = Convert.ToInt32(Request.Params["IDPred"]); using (var ugtu_db = new UGTU_DBDataContext()) { if ( kontakt.ValSvyazi!=null || kontakt.idNaznach!=null ) { int? idKL = null; if (kontakt.FIO == null && kontakt.Otdel == null) { idKL = ugtu_db.KontaktLico.Where(m => m.FIOKontaktLico == null && m.Otdel == null).Select(m => m.IDKontaktL).SingleOrDefault(); } if (kontakt.FIO == null && kontakt.Otdel != null) { idKL = ugtu_db.KontaktLico.Where(m => m.FIOKontaktLico == null && m.Otdel == kontakt.Otdel).Select(m => m.IDKontaktL).SingleOrDefault(); if (idKL == 0) idKL = null; } if (idKL == null) { KontaktLico KL = new KontaktLico() { idDolznost = AddDolgnost(kontakt.Dolgnost), FIOKontaktLico = kontakt.FIO, Otdel = kontakt.Otdel }; ugtu_db.KontaktLico.InsertOnSubmit(KL); ugtu_db.SubmitChanges(); idKL = KL.IDKontaktL; } if (kontakt.idNaznach != null) { foreach (var idNaz in kontakt.idNaznach) { KontaktLico_NaznachKontaktLico KL_N = new KontaktLico_NaznachKontaktLico() { IDPredpriyatie = kontakt.IDPred, IDKontaktL = (int)idKL, IDNaznachKontaktL = (int)idNaz }; ugtu_db.KontaktLico_NaznachKontaktLico.InsertOnSubmit(KL_N); ugtu_db.SubmitChanges(); } } if (kontakt.idTipSvyazi != null) { for (int i = 0; i < kontakt.idTipSvyazi.Count; i++)//возможна ошибка { KontaktLico_Svyaz KL_S = new KontaktLico_Svyaz() { IDKontaktL = (int)idKL, IDTSvyazi = (int)kontakt.idTipSvyazi[i], Znach = kontakt.ValSvyazi[i], IDPredpriyatie = kontakt.IDPred, }; ugtu_db.KontaktLico_Svyaz.InsertOnSubmit(KL_S); ugtu_db.SubmitChanges(); } } return 1; } else { return 0; } } }
partial void DeleteKontaktLico_NaznachKontaktLico(KontaktLico_NaznachKontaktLico instance);
partial void UpdateKontaktLico_NaznachKontaktLico(KontaktLico_NaznachKontaktLico instance);
partial void InsertKontaktLico_NaznachKontaktLico(KontaktLico_NaznachKontaktLico instance);
private void detach_KontaktLico_NaznachKontaktLico(KontaktLico_NaznachKontaktLico entity) { this.SendPropertyChanging(); entity.KontaktLico = null; }
private void attach_KontaktLico_NaznachKontaktLico(KontaktLico_NaznachKontaktLico entity) { this.SendPropertyChanging(); entity.NaznachKontaktLico = this; }