public int userType_Save(BLL.UserType ut) { try { DAL.UserType d = DB.UserTypes.Where(x => x.Id == ut.Id).FirstOrDefault(); if (d == null) { var c = DB.CompanyDetails.Where(x => x.Id == ut.CompanyId).FirstOrDefault(); d = new DAL.UserType(); c.UserTypes.Add(d); ut.toCopy <DAL.UserType>(d); foreach (var utd in ut.UserTypeDetails) { d.UserTypeDetails.Add(utd.toCopy <DAL.UserTypeDetail>(new DAL.UserTypeDetail())); } DB.SaveChanges(); ut.Id = d.Id; ut.Company = c.toCopy <BLL.CompanyDetail>(new BLL.CompanyDetail()); LogDetailStore(ut, LogDetailType.INSERT); } else { ut.toCopy <DAL.UserType>(d); foreach (var utd in ut.UserTypeDetails) { DAL.UserTypeDetail dd = d.UserTypeDetails.Where(x => x.Id == utd.Id).FirstOrDefault(); if (dd == null) { dd = new DAL.UserTypeDetail(); d.UserTypeDetails.Add(dd); } utd.toCopy <DAL.UserTypeDetail>(dd); } DB.SaveChanges(); LogDetailStore(ut, LogDetailType.UPDATE); } Clients.Clients(OtherLoginClientsOnGroup).userType_Save(ut); return(ut.Id); } catch (Exception ex) { } return(0); }