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 List <DatabaseViewModel> GetDbList(string connectionString, int settingHeaderId = 0) { var dbList = new List <DatabaseViewModel>(); var settings = new List <Setting>(); try { if (settingHeaderId != 0) { using (var db = new ScriptRunnerDbEntities()) { settings = db.Settings.Where(t => t.HeaderId == settingHeaderId).ToList(); } } using (SqlConnection con = new SqlConnection(connectionString)) { con.Open(); using (SqlCommand cmd = new SqlCommand("SELECT name from sys.databases", con)) { using (SqlDataReader dr = cmd.ExecuteReader()) { while (dr.Read()) { string dbName = dr[0].ToString(); if (dbName != "master" && dbName != "tempdb" && dbName != "model" && dbName != "msdb") { var dbVm = new DatabaseViewModel() { IsSelected = false, Name = dr[0].ToString() }; if (settingHeaderId != 0) { var matchedDb = settings.FirstOrDefault(t => t.DbName == dbName); if (matchedDb != null) { dbVm.IsSelected = true; dbVm.Id = matchedDb.Id; } } dbList.Add(dbVm); } } } } } } catch (Exception ex) { throw ex; } return(dbList); }
public List <ScriptRunResult> RunScript(string script, string scriptName, int settingId) { var executeResults = new List <ScriptRunResult>(); using (var db = new ScriptRunnerDbEntities()) { var dbHeader = db.SettingHeaders.FirstOrDefault(t => t.Id == settingId); var settings = db.Settings.Where(t => t.HeaderId == dbHeader.Id).ToList(); foreach (var d in settings) { string connectionString = CreateDbConnectionString(dbHeader.Server, dbHeader.IntegratedSecurity, dbHeader.Username, dbHeader.Password, d.DbName); var result = new ScriptRunResult() { ConnectionString = connectionString, DatabaseName = d.DbName, FileName = scriptName, BackGroundCode = "#009900" }; try { SqlConnection conn = new SqlConnection(connectionString); Server server = new Server(new ServerConnection(conn)); server.ConnectionContext.ExecuteNonQuery(script); result.Status = true; result.DisplayMessage = string.Format("SQL Script has been executed successfully for database {0}. \nScript Name : {1}.\nConnection String : {2}", d.DbName, scriptName, connectionString); } catch (Exception ex) { result.Status = false; //result.Message = string.Format("SQL Script execution has been failed for {0}. Error Message : {1}",d.DbName,ex.ToString()); result.DisplayMessage = string.Format("SQL Script execution has been failed for database {0}.\nConnection String : {1}.\nError Message : {2}", d.DbName, connectionString, ex.ToString()); result.BackGroundCode = "#FF6600"; } finally { } executeResults.Add(result); } } return(executeResults); }
public string GetSettingName() { try { using (var db = new ScriptRunnerDbEntities()) { var name = "Setting - " + (db.SettingHeaders.Count() + 1).ToString(); return(name); } } catch (Exception ex) { return(""); } }
public List <SettingsHeaderViewModel> GetAllSettings() { var settingHeaders = new List <SettingsHeaderViewModel>(); using (var db = new ScriptRunnerDbEntities()) { var settings = db.SettingHeaders.ToList(); foreach (var item in settings) { settingHeaders.Add(new SettingsHeaderViewModel() { Id = item.Id, IntegratedSecurity = item.IntegratedSecurity, Password = item.Password, SettingName = item.Name, UserName = item.Username, ServerName = item.Server }); } } return(settingHeaders); }
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); } } }