public bool DeleteSetting(int id) { try { using (var db = new ScriptRunnerDbEntities()) { var item = db.SettingHeaders.FirstOrDefault(t => t.Id == id); var settings = db.Settings.Where(t => t.HeaderId == item.Id).ToList(); foreach (var s in settings) { db.Settings.Remove(s); db.SaveChanges(); } db.SettingHeaders.Remove(item); db.SaveChanges(); } return(true); } catch (Exception ex) { throw ex; } }
public bool SaveDbSettings(int settingId, string serverName, bool integratedSecurity, string username, string password, string settingName, List <DatabaseViewModel> selectedDbs) { using (var db = new ScriptRunnerDbEntities()) { try { if (settingId == 0) { var settingHeading = new SettingHeader() { IntegratedSecurity = integratedSecurity, Name = settingName, Password = password, Username = username, Server = serverName, }; db.SettingHeaders.Add(settingHeading); db.SaveChanges(); selectedDbs.ForEach(d => { var setting = new Setting() { DbName = d.Name, HeaderId = settingHeading.Id }; db.Settings.Add(setting); db.SaveChanges(); }); } else { var settingHeader = db.SettingHeaders.FirstOrDefault(t => t.Id == settingId); settingHeader.IntegratedSecurity = integratedSecurity; settingHeader.Name = settingName; settingHeader.Password = password; settingHeader.Username = username; settingHeader.Server = serverName; db.SaveChanges(); var savedSettings = db.Settings.Where(t => t.HeaderId == settingId).ToList(); //newly added Settings var newItems = selectedDbs.Where(t => t.Id == 0).ToList(); newItems.ForEach(d => { var setting = new Setting() { DbName = d.Name, HeaderId = settingHeader.Id }; db.Settings.Add(setting); db.SaveChanges(); }); //DeletedDbs var deletedDbs = (from e in savedSettings where !selectedDbs.Any(t => t.Id == e.Id) select e).ToList(); foreach (var item in deletedDbs) { db.Settings.Remove(item); db.SaveChanges(); } } return(true); } catch (Exception ex) { return(false); } } }