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;
                }
            }
        }
Example #3
0
 partial void DeleteKontaktLico_NaznachKontaktLico(KontaktLico_NaznachKontaktLico instance);
Example #4
0
 partial void UpdateKontaktLico_NaznachKontaktLico(KontaktLico_NaznachKontaktLico instance);
Example #5
0
 partial void InsertKontaktLico_NaznachKontaktLico(KontaktLico_NaznachKontaktLico instance);
Example #6
0
		private void detach_KontaktLico_NaznachKontaktLico(KontaktLico_NaznachKontaktLico entity)
		{
			this.SendPropertyChanging();
			entity.KontaktLico = null;
		}
Example #7
0
		private void attach_KontaktLico_NaznachKontaktLico(KontaktLico_NaznachKontaktLico entity)
		{
			this.SendPropertyChanging();
			entity.NaznachKontaktLico = this;
		}