public ActionResult Track(ChangeTrackingDetails data) { ViewBag.ChangeTrackingEnabled = true; if (!data.ShowChangesFromRevision.HasValue) { if (!DatabaseContext.CheckIfTrackingEnabled(data.DatabaseServer, data.DatabaseName, User.Identity.Name).HasValue) { // then this must come directly from Database Actions menu and I disable part of view ViewBag.ChangeTrackingEnabled = false; } } else { List<string> sqlStatementList = new List<string>(); var tableList = Session[String.Format("TrackingTables{0}{1}", data.DatabaseServer, data.DatabaseName)]; if(tableList != null) { if(String.Compare((string)tableList, data.ListOfTablesToCompare, false) == 0) { sqlStatementList = Session[String.Format("TrackingStatements{0}{1}", data.DatabaseServer, data.DatabaseName)] as List<string>; if (sqlStatementList == null) { sqlStatementList = DatabaseContext.GetTablesForDataTrack(data.DatabaseServer, data.DatabaseName, data.ListOfTablesToCompare, User.Identity.Name); Session[String.Format("TrackingTables{0}{1}", data.DatabaseServer, data.DatabaseName)] = data.ListOfTablesToCompare; Session[String.Format("TrackingStatements{0}{1}", data.DatabaseServer, data.DatabaseName)] = sqlStatementList; } }else { Session.Remove(String.Format("TrackingStatements{0}{1}", data.DatabaseServer, data.DatabaseName)); Session.Remove(String.Format("TrackingTables{0}{1}", data.DatabaseServer, data.DatabaseName)); sqlStatementList = DatabaseContext.GetTablesForDataTrack(data.DatabaseServer, data.DatabaseName, data.ListOfTablesToCompare, User.Identity.Name); Session[String.Format("TrackingTables{0}{1}", data.DatabaseServer, data.DatabaseName)] = data.ListOfTablesToCompare; Session[String.Format("TrackingStatements{0}{1}", data.DatabaseServer, data.DatabaseName)] = sqlStatementList; } } else { sqlStatementList = DatabaseContext.GetTablesForDataTrack(data.DatabaseServer, data.DatabaseName, data.ListOfTablesToCompare, User.Identity.Name); Session[String.Format("TrackingTables{0}{1}", data.DatabaseServer, data.DatabaseName)] = data.ListOfTablesToCompare; Session[String.Format("TrackingStatements{0}{1}", data.DatabaseServer, data.DatabaseName)] = sqlStatementList; } string logMessage; data.TrackDataChangesReslut = DatabaseContext.TrackDataChanges(data.DatabaseServer, data.DatabaseName, User.Identity.Name, sqlStatementList, data.ShowChangesFromRevision, out logMessage); data.TrackDataChangesLog = logMessage; } return View(data); }
public ActionResult GetTrackData(ChangeTrackingDetails data) { List<string> sqlStatementList = new List<string>(); var tableList = Session[String.Format("TrackingTables{0}{1}", data.DatabaseServer, data.DatabaseName)]; if (tableList != null) { if (String.Compare((string)tableList, data.ListOfTablesToCompare, false) == 0) { sqlStatementList = Session[String.Format("TrackingStatements{0}{1}", data.DatabaseServer, data.DatabaseName)] as List<string>; if (sqlStatementList == null) { sqlStatementList = DatabaseContext.GetTablesForDataTrack(data.DatabaseServer, data.DatabaseName, data.ListOfTablesToCompare, User.Identity.Name); Session[String.Format("TrackingTables{0}{1}", data.DatabaseServer, data.DatabaseName)] = data.ListOfTablesToCompare; Session[String.Format("TrackingStatements{0}{1}", data.DatabaseServer, data.DatabaseName)] = sqlStatementList; } } else { Session.Remove(String.Format("TrackingStatements{0}{1}", data.DatabaseServer, data.DatabaseName)); Session.Remove(String.Format("TrackingTables{0}{1}", data.DatabaseServer, data.DatabaseName)); sqlStatementList = DatabaseContext.GetTablesForDataTrack(data.DatabaseServer, data.DatabaseName, data.ListOfTablesToCompare, User.Identity.Name); Session[String.Format("TrackingTables{0}{1}", data.DatabaseServer, data.DatabaseName)] = data.ListOfTablesToCompare; Session[String.Format("TrackingStatements{0}{1}", data.DatabaseServer, data.DatabaseName)] = sqlStatementList; } } else { sqlStatementList = DatabaseContext.GetTablesForDataTrack(data.DatabaseServer, data.DatabaseName, data.ListOfTablesToCompare, User.Identity.Name); Session[String.Format("TrackingTables{0}{1}", data.DatabaseServer, data.DatabaseName)] = data.ListOfTablesToCompare; Session[String.Format("TrackingStatements{0}{1}", data.DatabaseServer, data.DatabaseName)] = sqlStatementList; } string logMessage; data.TrackDataChangesReslut = DatabaseContext.TrackDataChanges(data.DatabaseServer, data.DatabaseName, User.Identity.Name, sqlStatementList, data.ShowChangesFromRevision, out logMessage); data.TrackDataChangesLog = logMessage; return PartialView("_TrackData", data); }