public virtual ServerViewGrid ServerWorkspaces(GridConditions gridConditions, ServerViewFilterConditions filterConditions, ServerViewFilterOperands filterOperands) { var grid = new ServerViewGrid(); var dt = this.reportRepository.GetUserExperienceServerDetails(gridConditions, filterConditions, filterOperands); if (dt.Count > 1) { var searchUsers = dt[0]; grid.Data = (from DataRow d in searchUsers.Rows select new UserExperienceServerWorkspaceInfo { Index = d.Field <int>("RowNumber"), ServerId = d.Field <int>("ServerArtifactId"), Server = d.Field <string>("Server"), WorkspaceId = d.Field <int>("CaseArtifactId"), Workspace = d.Field <string>("Workspace"), SummaryDayHour = d.Field <DateTime>("SummaryDayHour"), Score = d.Field <int?>("Score").GetValueOrDefault(0), TotalUsers = d.Field <int?>("TotalUsers").GetValueOrDefault(0), TotalLongRunning = d.Field <int?>("TotalLongRunning").GetValueOrDefault(0), TotalSearchAudits = d.Field <int?>("TotalSearchAudits").GetValueOrDefault(0), TotalNonSearchAudits = d.Field <int?>("TotalNonSearchAudits").GetValueOrDefault(0), TotalAudits = d.Field <int?>("TotalAudits").GetValueOrDefault(0), TotalExecutionTime = d.Field <Int64?>("TotalExecutionTime").GetValueOrDefault(0), IsActiveWeeklySample = d.Field <bool>("IsActiveArrivalRateSample") }).AsQueryable(); var resultInfo = dt[1]; grid.Count = resultInfo.Rows.Count > 0 ? resultInfo.Rows[0].Field <int?>("FilteredCount").GetValueOrDefault(0) : 0; } return(grid); }
public virtual HoursViewGrid WorkspaceSearches(GridConditions gridConditions, HoursViewFilterConditions filterConditions, HoursViewFilterOperands filterOperands) { var grid = new HoursViewGrid(); var dt = this.reportRepository.GetUserExperienceHourDetails(gridConditions, filterConditions, filterOperands); if (dt.Count > 1) { var searchUsers = dt[0]; grid.Data = (from DataRow d in searchUsers.Rows select new UserExperienceWorkspaceHourInfo { Index = d.Field <Int64>("RowNumber"), Workspace = d.Field <string>("DatabaseName"), SearchId = d.Field <int>("SearchArtifactId"), Search = d.Field <string>("SearchName"), TotalRunTime = d.Field <int?>("TotalRunTime").GetValueOrDefault(0), AverageRunTime = d.Field <int?>("AverageRunTime").GetValueOrDefault(0), TotalRuns = d.Field <int?>("TotalRuns").GetValueOrDefault(0), IsComplex = d.Field <bool?>("IsComplex").GetValueOrDefault(false), SummaryDayHour = d.Field <DateTime>("SummaryDayHour"), IsActiveWeeklySample = d.Field <bool>("IsActiveArrivalRateSample") }).AsQueryable(); var resultInfo = dt[1]; grid.Count = resultInfo.Rows.Count > 0 ? resultInfo.Rows[0].Field <int?>("FilteredCount").GetValueOrDefault(0) : 0; } return(grid); }
public virtual WaitsViewGrid Waits(GridConditions gridConditions, WaitsViewFilterConditions filterConditions, WaitsViewFilterOperands filterOperands) { var grid = new WaitsViewGrid(); var dt = this.reportRepository.GetSystemLoadWaitsDetails(gridConditions, filterConditions, filterOperands); if (dt.Count > 1) { var searchUsers = dt[0]; grid.Data = (from DataRow d in searchUsers.Rows select new SystemLoadWaitsInfo { Index = d.Field <int>("RowNumber"), ServerId = d.Field <int>("ServerArtifactId"), Server = d.Field <string>("Server"), WaitType = d.Field <string>("WaitType"), SummaryDayHour = d.Field <DateTime>("SummaryDayHour"), OverallScore = d.Field <int?>("WaitsScore").GetValueOrDefault(100), SignalWaitsRatio = d.Field <int?>("SignalWaitsRatio").GetValueOrDefault(0), SignalWaitTime = d.Field <long?>("SignalWaitTime").GetValueOrDefault(0), TotalWaitTime = d.Field <long?>("TotalWaitTime").GetValueOrDefault(0), IsPoisonWait = d.Field <bool>("IsPoisonWait"), IsActiveWeeklySample = d.Field <bool>("IsActiveArrivalRateSample"), PercentOfCPUThreshold = d.Field <decimal?>("PercentOfCPUThreshold").GetValueOrDefault(0), DifferentialWaitingTasksCount = d.Field <Int64?>("DifferentialWaitingTasksCount").GetValueOrDefault(0), }).AsQueryable(); var resultInfo = dt[1]; grid.Count = resultInfo.Rows.Count > 0 ? resultInfo.Rows[0].Field <int?>("FilteredCount").GetValueOrDefault(0) : 0; } return(grid); }
public virtual UptimeViewGrid UptimeHours(GridConditions gridConditions, UptimeViewFilterConditions filterConditions, UptimeViewFilterOperands filterOperands) { var grid = new UptimeViewGrid(); var dt = this.reportRepository.GetUptimeHours(gridConditions, filterConditions, filterOperands); if (dt.Count > 1) { var searchUsers = dt[0]; grid.Data = (from DataRow d in searchUsers.Rows select new UptimeReportHourInfo { Index = d.Field <int>("RowNumber"), SummaryDayHour = d.Field <DateTime?>("SummaryDayHour").GetValueOrDefault(DateTime.UtcNow), Score = d.Field <int?>("Score").GetValueOrDefault(0), Status = d.Field <string>("Status"), Uptime = (double)d.Field <decimal?>("Uptime").GetValueOrDefault(100), AffectedByMaintenanceWindow = d.Field <bool>("AffectedByMaintenanceWindow") }).AsQueryable(); var resultInfo = dt[1]; grid.Count = resultInfo.Rows.Count > 0 ? resultInfo.Rows[0].Field <int?>("FilteredCount").GetValueOrDefault(0) : 0; } return(grid); }
public void GetFileLevelLatencyDetails_WithServerIdFilter(FileLatency.Columns sortColumn) { //Arrange var gridConditions = new GridConditions() { SortColumn = sortColumn.ToString(), SortDirection = "desc" }; var filterConditions = System.Enum .GetValues(typeof(FileLatency.Columns)) .Cast <FileLatency.Columns>() .ToDictionary(k => k, v => (String)null); var filterOperands = System.Enum .GetValues(typeof(FileLatency.Columns)) .Cast <FileLatency.Columns>() .ToDictionary(k => k, v => FilterOperand.Equals); //filterConditions[FileLatency.Columns.DatabaseName] = "ED"; //begin fileter for EDDSXYZ filterConditions[FileLatency.Columns.ServerName] = "1015096"; //begin fileter for EDDSXYZ //Act var result = ecRepo.GetFileLevelLatencyDetails(gridConditions, filterConditions, filterOperands); //Assert Assert.That(result, Is.Not.Null); }
public virtual SearchViewGrid SearchUsers(GridConditions gridConditions, SearchViewFilterConditions filterConditions, SearchViewFilterOperands filterOperands) { var grid = new SearchViewGrid(); var dt = this.reportRepository.GetUserExperienceSearchDetails(gridConditions, filterConditions, filterOperands); if (dt.Count > 1) { var searchUsers = dt[0]; grid.Data = (from DataRow d in searchUsers.Rows select new UserExperienceSearchUserInfo { Index = d.Field <int>("RowNumber"), CaseArtifactId = d.Field <int>("CaseArtifactID"), AuditId = d.Field <long?>("LastAuditID").GetValueOrDefault(0), SearchArtifactId = d.Field <int>("SearchArtifactId"), Search = d.Field <string>("Search"), UserArtifactId = d.Field <int>("UserArtifactID"), User = d.Field <string>("User"), TotalRunTime = d.Field <Int64?>("TotalRunTime").GetValueOrDefault(0), AverageRunTime = d.Field <int?>("AverageRunTime").GetValueOrDefault(0), TotalRuns = d.Field <int?>("TotalRuns").GetValueOrDefault(0), PercentLongRunning = d.Field <int?>("PercentLongRunning").GetValueOrDefault(0), IsComplex = d.Field <bool?>("IsComplex").GetValueOrDefault(false), SummaryDayHour = d.Field <DateTime>("SummaryDayHour"), QoSHourID = d.Field <Int64?>("QoSHourID").GetValueOrDefault(0), IsActiveWeeklySample = d.Field <bool>("IsActiveArrivalRateSample") }).AsQueryable(); var resultInfo = dt[1]; grid.Count = resultInfo.Rows.Count > 0 ? resultInfo.Rows[0].Field <int?>("FilteredCount").GetValueOrDefault(0) : 0; } return(grid); }
public virtual GeneralCheckGrid <FileLatency> FileLatencies(GridConditions gridConditions, Dictionary <FileLatency.Columns, String> filterConditions, Dictionary <FileLatency.Columns, FilterOperand> filterOperands) { var grid = new GeneralCheckGrid <FileLatency>(); var dt = this.fileLatencyRepository.GetFileLevelLatencyDetails(gridConditions, filterConditions, filterOperands); var gridData = (from DataRow d in dt.Rows select new FileLatency { ServerName = d.GetField <String>("ServerName"), DatabaseName = d.GetField <String>("DatabaseName"), Score = d.GetField <decimal?>("Score"), DataReadLatency = d.GetField <long?>("DataReadLatency"), DataWriteLatency = d.GetField <long?>("DataWriteLatency"), LogReadLatency = d.GetField <long?>("LogReadLatency"), LogWriteLatency = d.GetField <long?>("LogWriteLatency"), }).ToList(); grid.Count = gridData.Count(); grid.Data = gridData.AsQueryable(); if (0 < gridConditions.StartRow) { grid.Data = grid.Data.Skip(gridConditions.StartRow - 1); } if (0 < gridConditions.EndRow) { grid.Data = grid.Data.Take(gridConditions.EndRow - gridConditions.StartRow + 1); } return(grid); }
// Report methods // public virtual BackupDbccViewGrid BackupDbccHistory(GridConditions gridConditions, BackupDbccViewFilterConditions filterConditions, BackupDbccViewFilterOperands filterOperands) { var grid = new BackupDbccViewGrid(); var dt = this.reportRepository.GetBackupDbccHistoryDetails(gridConditions, filterConditions, filterOperands); if (dt.Count > 1) { var searchUsers = dt[0]; grid.Data = (from DataRow d in searchUsers.Rows select new BackupDbccGapInfo { Index = d.Field <int>("RowNumber"), ServerId = d.Field <int>("ServerArtifactID"), Server = d.Field <string>("ServerName"), Database = d.Field <string>("DatabaseName"), Workspace = d.Field <string>("WorkspaceName"), IsBackup = d.Field <bool?>("IsBackup").GetValueOrDefault(false), LastActivityDate = d.Field <DateTime?>("LastActivityDate"), GapResolutionDate = d.Field <DateTime?>("ResolutionDate"), GapSize = d.Field <int?>("GapSize").GetValueOrDefault(0) }).AsQueryable(); var resultInfo = dt[1]; grid.Count = resultInfo.Rows.Count > 0 ? resultInfo.Rows[0].Field <int?>("FilteredCount").GetValueOrDefault(0) : 0; } return(grid); }
/// <summary> /// Retrieves data for the Backup/DBCC History View /// </summary> /// <param name="gridConditions"></param> /// <param name="filterConditions"></param> /// <returns></returns> public DataTableCollection GetBackupDbccHistoryDetails(GridConditions gridConditions, BackupDbccViewFilterConditions filterConditions, BackupDbccViewFilterOperands filterOperands) { using (var conn = (SqlConnection)this.connectionFactory.GetEddsPerformanceConnection()) { using (var command = new SqlCommand()) { var parameters = new SqlParameter[] { //Grid conditions new SqlParameter { ParameterName = "@SortColumn", DbType = DbType.String, Value = gridConditions.SortColumn }, new SqlParameter { ParameterName = "@SortDirection", DbType = DbType.String, Value = gridConditions.SortDirection }, new SqlParameter { ParameterName = "@TimezoneOffset", DbType = DbType.Int32, Value = gridConditions.TimezoneOffset }, new SqlParameter { ParameterName = "@StartRow", DbType = DbType.Int32, Value = gridConditions.StartRow }, new SqlParameter { ParameterName = "@EndRow", DbType = DbType.Int32, Value = gridConditions.EndRow }, //Filter conditions new SqlParameter { ParameterName = "@Server", DbType = DbType.String, Value = filterConditions.Server }, new SqlParameter { ParameterName = "@Database", DbType = DbType.String, Value = filterConditions.Database }, new SqlParameter { ParameterName = "@LastActivityDate", DbType = DbType.DateTime, Value = filterConditions.LastActivityDate }, new SqlParameter { ParameterName = "@ActivityType", DbType = DbType.Boolean, Value = filterConditions.IsBackup }, new SqlParameter { ParameterName = "@ResolutionDate", DbType = DbType.DateTime, Value = filterConditions.ResolutionDate }, new SqlParameter { ParameterName = "@GapSize", DbType = DbType.Int32, Value = filterConditions.GapSize }, //Filter operands new SqlParameter { ParameterName = "@GapSizeOperand", DbType = DbType.String, Value = filterOperands.GapSize.GetSqlOperation() }, //Page-level filters new SqlParameter { ParameterName = "@StartHour", DbType = DbType.DateTime, Value = gridConditions.StartDate }, new SqlParameter { ParameterName = "@EndHour", DbType = DbType.DateTime, Value = gridConditions.EndDate } }; var data = SqlHelper.ExecuteDataset(conn, CommandType.StoredProcedure, "eddsdbo.QoS_BackupDBCCReport", parameters); return(data.Tables); } } }
public void GetUserExperienceHourDetails(HoursViewColumns sortColumn) { //Arrange var gridConditions = new GridConditions(); var filterConditions = new HoursViewFilterConditions(); var filterOperands = new HoursViewFilterOperands(); //Grid conditions gridConditions.SortColumn = sortColumn.ToString(); gridConditions.SortDirection = "ASC"; gridConditions.TimezoneOffset = 0; gridConditions.StartRow = 1; gridConditions.EndRow = 25; //Filter conditions filterConditions.Search = ""; filterConditions.Workspace = ""; //Filter operands filterOperands.TotalRunTime = FilterOperand.Equals; filterOperands.AverageRunTime = FilterOperand.Equals; filterOperands.TotalRuns = FilterOperand.Equals; //Page-level filters gridConditions.StartDate = DateTime.Now.AddYears(-1); gridConditions.EndDate = DateTime.Now.AddDays(1); //Act var result = this.reportRepository.GetUserExperienceHourDetails(gridConditions, filterConditions, filterOperands); //Assert Assert.That(result, Is.Not.Null); Assert.That(result, Is.Not.Empty); }
public async Task ThenTheRPOScoreForTheHourShouldBe(int p0) { // Build up service (api) to get report data var kernel = ScenarioContext.Current.Get <IKernel>("Kernel"); kernel.Bind <IRecoverabilityIntegrityReportReader>().To <LegacyRecoverabilityIntegrityReportRepository>(); var backupDbccService = kernel.Get <BackupDbccService>(); // Read test hours var mockHourRepository = kernel.Get <HourTestDataRepository>(); var hours = await mockHourRepository.ReadHoursAsync(); // Init params var startDate = hours.Min(h => h.HourTimeStamp); var gridConditions = new GridConditions { StartDate = startDate, EndDate = startDate }; // Get result var result = backupDbccService.RecoverabilityIntegritySummary( gridConditions, new RecoverabilityIntegrityViewFilterConditions(), new RecoverabilityIntegrityViewFilterOperands()); // Should only be one result, unless we're running multiple hours var filteredResults = result.Data.Where(d => hours.Any(h => h.HourTimeStamp == d.SummaryDayHour)); var orderedResults = filteredResults.OrderByDescending(o => o.Index); var firstResult = orderedResults.First(); // Assert TODO -- Discuss if assertions should be in the excel sheet in some format, or how they should work. Assert.That(firstResult.RPOScore, Is.EqualTo(p0)); }
public virtual RecoveryObjectivesViewGrid RecoveryObjectivesSummary(GridConditions gridConditions, RecoveryObjectivesViewFilterConditions filterConditions, RecoveryObjectivesViewFilterOperands filterOperands) { var grid = new RecoveryObjectivesViewGrid(); var dt = this.reportRepository.GetRecoveryObjectivesDetails(gridConditions, filterConditions, filterOperands); if (dt.Count > 1) { var searchUsers = dt[0]; grid.Data = (from DataRow d in searchUsers.Rows select new RecoveryObjectivesInfo { Index = d.Field <int>("RowNumber"), ServerId = d.Field <int?>("ServerId").GetValueOrDefault(0), ServerName = d.Field <string>("ServerName"), DatabaseName = d.Field <string>("DBName"), RPOScore = d.Field <int?>("RPOScore").GetValueOrDefault(100), RTOScore = d.Field <int?>("RTOScore").GetValueOrDefault(100), PotentialDataLossMinutes = d.Field <int?>("PotentialDataLossMinutes").GetValueOrDefault(0), EstimatedTimeToRecoverHours = d.Field <int?>("EstimatedTimeToRecoverHours").GetValueOrDefault(0) }).AsQueryable(); var resultInfo = dt[1]; grid.Count = resultInfo.Rows.Count > 0 ? resultInfo.Rows[0].Field <int?>("FilteredCount").GetValueOrDefault(0) : 0; } return(grid); }
public DataTable GetDatabaseDetails(GridConditions gridConditions, EnvironmentCheckDatabaseFilterConditions filterConditions, EnvironmentCheckDatabaseFilterOperands filterOperands) { using (var conn = (SqlConnection)this.connectionFactory.GetEddsPerformanceConnection()) { var parameters = new[] { //Grid conditions //Filter conditions new SqlParameter { ParameterName = "@serverNameFilter", DbType = DbType.String, Value = GetNullableDBValue(filterConditions.ServerName) }, new SqlParameter { ParameterName = "@sqlVersionFilter", DbType = DbType.String, Value = GetNullableDBValue(filterConditions.SQLVersion) }, new SqlParameter { ParameterName = "@adhocWorkloadFilter", DbType = DbType.String, Value = GetNullableDBValue(filterConditions.AdHocWorkload) }, new SqlParameter { ParameterName = "@maxServerMemoryFilter", DbType = DbType.String, Value = GetNullableDBValue(filterConditions.MaxServerMemory) }, new SqlParameter { ParameterName = "@maxdegreeOfParallelismFilter", DbType = DbType.String, Value = GetNullableDBValue(filterConditions.MaxDegreeOfParallelism) }, new SqlParameter { ParameterName = "@tempDBDataFilesFilter", DbType = DbType.String, Value = GetNullableDBValue(filterConditions.tempDBDataFiles) }, new SqlParameter { ParameterName = "@lastSQLRestartFilter", DbType = DbType.String, Value = GetNullableDBValue(filterConditions.LastSqlRestart) }, //Filter operands new SqlParameter { ParameterName = "@adhocWorkloadOperator", DbType = DbType.Int32, Value = (int)filterOperands.AdHocWorkload }, new SqlParameter { ParameterName = "@maxServerMemoryOperator", DbType = DbType.Int32, Value = (int)filterOperands.MaxServerMemory }, new SqlParameter { ParameterName = "@maxDegreeOfParallelismOperator", DbType = DbType.Int32, Value = (int)filterOperands.MaxDegreeOfParallelism }, new SqlParameter { ParameterName = "@tempDBDataFilesOperator", DbType = DbType.Int32, Value = (int)filterOperands.TempDBDataFiles }, new SqlParameter { ParameterName = "@lastSQLRestartOperator", DbType = DbType.Int32, Value = (int)filterOperands.LastSQLRestart }, //Page-level filters }; var data = SqlHelper.ExecuteDataset(conn, CommandType.Text, Resources.ReadEnvironmentCheckDatabaseDetails, parameters); if (false == String.IsNullOrEmpty(gridConditions.SortColumn) && false == String.IsNullOrEmpty(gridConditions.SortDirection)) { String sortExpression = $"{gridConditions.SortColumn} {gridConditions.SortDirection}"; data.Tables[0].DefaultView.Sort = sortExpression; return(data.Tables[0].DefaultView.ToTable()); } return(data.Tables[0]); } }
/// <summary> /// Retrieves data for the Recovery Objectives View /// </summary> /// <param name="gridConditions"></param> /// <param name="filterConditions"></param> /// <returns></returns> public DataTableCollection GetRecoveryObjectivesDetails(GridConditions gridConditions, RecoveryObjectivesViewFilterConditions filterConditions, RecoveryObjectivesViewFilterOperands filterOperands) { using (var conn = (SqlConnection)this.connectionFactory.GetEddsPerformanceConnection()) { using (var command = new SqlCommand()) { var parameters = new SqlParameter[] { //Grid conditions new SqlParameter { ParameterName = "@SortColumn", DbType = DbType.String, Value = gridConditions.SortColumn }, new SqlParameter { ParameterName = "@SortDirection", DbType = DbType.String, Value = gridConditions.SortDirection }, new SqlParameter { ParameterName = "@StartRow", DbType = DbType.Int32, Value = gridConditions.StartRow }, new SqlParameter { ParameterName = "@EndRow", DbType = DbType.Int32, Value = gridConditions.EndRow }, //Filter conditions new SqlParameter { ParameterName = "@Server", DbType = DbType.String, Value = filterConditions.Server }, new SqlParameter { ParameterName = "@DBName", DbType = DbType.String, Value = filterConditions.DatabaseName }, new SqlParameter { ParameterName = "@RPOScore", DbType = DbType.Int32, Value = filterConditions.RPOScore }, new SqlParameter { ParameterName = "@RTOScore", DbType = DbType.Int32, Value = filterConditions.RTOScore }, new SqlParameter { ParameterName = "@PotentialDataLossMinutes", DbType = DbType.Int32, Value = filterConditions.PotentialDataLossMinutes }, new SqlParameter { ParameterName = "@EstimatedTimeToRecoverHours", DbType = DbType.Int32, Value = filterConditions.EstimatedTimeToRecoverHours }, //Filter operands new SqlParameter { ParameterName = "@RPOScoreOperand", DbType = DbType.String, Value = filterOperands.RPOScore.GetSqlOperation() }, new SqlParameter { ParameterName = "@RTOScoreOperand", DbType = DbType.String, Value = filterOperands.RTOScore.GetSqlOperation() }, new SqlParameter { ParameterName = "@PotentialDataLossMinutesOperand", DbType = DbType.String, Value = filterOperands.PotentialDataLossMinutes.GetSqlOperation() }, new SqlParameter { ParameterName = "@EstimatedTimeToRecoverHoursOperand", DbType = DbType.String, Value = filterOperands.EstimatedTimeToRecoverHours.GetSqlOperation() } }; var data = SqlHelper.ExecuteDataset(conn, CommandType.StoredProcedure, "eddsdbo.QoS_RecoveryObjectivesReport", parameters); return(data.Tables); } } }
// Reads ALL servers' FLLD public DataTable GetFileLevelLatencyDetails(GridConditions gridConditions, Dictionary <FileLatency.Columns, String> filterConditions, Dictionary <FileLatency.Columns, FilterOperand> filterOperands) { using (var conn = (SqlConnection)this.connectionFactory.GetEddsPerformanceConnection()) { var parameters = new SqlParameter[] { //Filter conditions new SqlParameter { ParameterName = "@serverNameFilter", DbType = DbType.String, Value = GetNullableDBValue(filterConditions[FileLatency.Columns.ServerName]) }, new SqlParameter { ParameterName = "@databaseNameFilter", DbType = DbType.String, Value = GetNullableDBValue(filterConditions[FileLatency.Columns.DatabaseName]) }, new SqlParameter { ParameterName = "@scoreFilter", DbType = DbType.String, Value = GetNullableDBValue(filterConditions[FileLatency.Columns.Score]) }, new SqlParameter { ParameterName = "@dataReadFilter", DbType = DbType.String, Value = GetNullableDBValue(filterConditions[FileLatency.Columns.DataReadLatency]) }, new SqlParameter { ParameterName = "@dataWriteFilter", DbType = DbType.String, Value = GetNullableDBValue(filterConditions[FileLatency.Columns.DataWriteLatency]) }, new SqlParameter { ParameterName = "@logReadFilter", DbType = DbType.String, Value = GetNullableDBValue(filterConditions[FileLatency.Columns.LogReadLatency]) }, new SqlParameter { ParameterName = "@logWriteFilter", DbType = DbType.String, Value = GetNullableDBValue(filterConditions[FileLatency.Columns.LogWriteLatency]) }, //Filter operands new SqlParameter { ParameterName = "@scoreOperator", DbType = DbType.Int32, Value = (int)filterOperands[FileLatency.Columns.Score] }, new SqlParameter { ParameterName = "@dataReadOperator", DbType = DbType.Int32, Value = (int)filterOperands[FileLatency.Columns.DataReadLatency] }, new SqlParameter { ParameterName = "@dataWriteOperator", DbType = DbType.Int32, Value = (int)filterOperands[FileLatency.Columns.DataWriteLatency] }, new SqlParameter { ParameterName = "@logReadOperator", DbType = DbType.Int32, Value = (int)filterOperands[FileLatency.Columns.LogReadLatency] }, new SqlParameter { ParameterName = "@logWriteOperator", DbType = DbType.Int32, Value = (int)filterOperands[FileLatency.Columns.LogWriteLatency] }, }; var data = SqlHelper.ExecuteDataset(conn, CommandType.Text, Resources.ReadFileLatencyDetails, parameters); if (false == String.IsNullOrEmpty(gridConditions.SortColumn) && false == String.IsNullOrEmpty(gridConditions.SortDirection)) { String sortExpression = $"{gridConditions.SortColumn} {gridConditions.SortDirection}"; data.Tables[0].DefaultView.Sort = sortExpression; return(data.Tables[0].DefaultView.ToTable()); } return(data.Tables[0]); } }
public FileLatencyViewModel() { GridConditions = new GridConditions(); FilterConditions = System.Enum .GetValues(typeof(FileLatency.Columns)) .Cast <FileLatency.Columns>() .ToDictionary(k => k, v => (String)null); FilterOperands = System.Enum .GetValues(typeof(FileLatency.Columns)) .Cast <FileLatency.Columns>() .ToDictionary(k => k, v => FilterOperand.Equals); }
public EnvironmentCheckViewModel() { GridConditions = new GridConditions(); RecommendationFilterConditions = new EnvironmentCheckRecommendationFilterConditions(); ServerFilterConditions = new EnvironmentCheckServerFilterConditions(); ServerFilterOperands = new EnvironmentCheckServerFilterOperands(); DatabaseFilterConditions = new EnvironmentCheckDatabaseFilterConditions(); DatabaseFilterOperands = new EnvironmentCheckDatabaseFilterOperands(); }
public void GetBackupDbccHistoryDetails(BackupDbccViewColumns sortColumn) { var gridConditions = new GridConditions { SortColumn = sortColumn.ToString() }; var details = this.reportRepository.GetBackupDbccHistoryDetails( gridConditions, new BackupDbccViewFilterConditions(), new BackupDbccViewFilterOperands()); Assert.That(details, Is.Not.Null); }
public void GetRecoveryObjectivesDetails(RecoveryObjectivesViewColumns sortColumn) { var conditions = new GridConditions { SortColumn = sortColumn.ToString() }; var details = this.reportRepository.GetRecoveryObjectivesDetails( conditions, new RecoveryObjectivesViewFilterConditions(), new RecoveryObjectivesViewFilterOperands()); Assert.That(details, Is.Not.Null); }
protected GridConditions PopulateCommonGridConditions(List <KeyValuePair <string, string> > queryParams) { var conditions = new GridConditions(); var sEcho = queryParams.FirstOrDefault(k => k.Key == "sEcho"); var iDisplayStart = queryParams.FirstOrDefault(k => k.Key == "iDisplayStart"); var iDisplayLength = queryParams.FirstOrDefault(k => k.Key == "iDisplayLength"); var timezoneOffset = queryParams.FirstOrDefault(k => k.Key == "TimezoneOffset"); var startDate = queryParams.FirstOrDefault(x => x.Key == "StartDate"); var endDate = queryParams.FirstOrDefault(x => x.Key == "EndDate"); var serverArtifactId = queryParams.FirstOrDefault(x => x.Key == "ServerArtifactId"); var serverSelection = queryParams.FirstOrDefault(x => x.Key == "ServerSelection"); conditions.sEcho = sEcho.Value; conditions.StartRow = string.IsNullOrEmpty(iDisplayStart.Value) ? 1 : int.Parse(iDisplayStart.Value) + 1; conditions.EndRow = string.IsNullOrEmpty(iDisplayLength.Value) ? 25 : int.Parse(iDisplayLength.Value) + conditions.StartRow - 1; conditions.TimezoneOffset = string.IsNullOrEmpty(timezoneOffset.Value) ? 0 : int.Parse(timezoneOffset.Value); //Page-level date filters DateTime sd, ed; if (!DateTime.TryParse(startDate.Value, out sd)) { conditions.StartDate = DateTime.UtcNow.AddDays(-90).AddMinutes(conditions.TimezoneOffset); } else { conditions.StartDate = sd.AddMinutes(-1 * conditions.TimezoneOffset); //midnight local time this day, converted to UTC } if (!DateTime.TryParse(endDate.Value, out ed)) { conditions.EndDate = DateTime.UtcNow.AddMinutes(conditions.TimezoneOffset); } else { conditions.EndDate = ed.AddDays(1).AddMinutes(-1 * conditions.TimezoneOffset - 1); //23:59 local time the following day, converted to UTC } //Page-level server filters if (!int.TryParse(serverArtifactId.Value, out conditions.ServerArtifactId)) { conditions.ServerArtifactId = -1; } conditions.SelectedServers = serverSelection.Value; return(conditions); }
public void GetRecoverabilityIntegrityDetails_Default(RecoverabilityIntegrityViewColumns sortColumn) { var conditions = new GridConditions { SortColumn = sortColumn.ToString() }; var otherConditions = new RecoverabilityIntegrityViewFilterConditions(); var details = this.reportRepository.GetRecoverabilityIntegrityDetails( conditions, otherConditions, new RecoverabilityIntegrityViewFilterOperands()); Assert.That(details, Is.Not.Null); }
public void GetRecomendations(EnvironmentCheckRecommendationColumns sortColumn) { //Arrange var gridCond = new GridConditions { SortColumn = sortColumn.ToString(), SortDirection = "asc", }; var filterConds = new EnvironmentCheckRecommendationFilterConditions { }; //Act var result = ecRepo.GetRecomendations(gridCond, filterConds); //Assert Assert.That(result, Is.Not.Null); }
public void GetDatabaseDetails(EnvironmentCheckDatabaseColumns sortColumn) { //Arrange var gridCond = new GridConditions { SortColumn = sortColumn.ToString(), SortDirection = "asc", }; var filterConds = new EnvironmentCheckDatabaseFilterConditions { }; var filterOps = new EnvironmentCheckDatabaseFilterOperands { }; //Act var result = ecRepo.GetDatabaseDetails(gridCond, filterConds, filterOps); //Assert Assert.That(result, Is.Not.Null); }
/// <summary> /// Retrieves data for environment check system recommendations /// </summary> /// <param name="gridConditions"></param> /// <param name="filterConditions"></param> /// <returns></returns> public DataTable GetRecomendations(GridConditions gridConditions, EnvironmentCheckRecommendationFilterConditions filterConditions) { var sortColumn = gridConditions.SortColumn.ToLower() == "status" ? "Severity" : gridConditions.SortColumn; using (var conn = (SqlConnection)this.connectionFactory.GetEddsPerformanceConnection()) { var parameters = new[] { //Filter conditions new SqlParameter { ParameterName = "@scopeFilter", DbType = DbType.String, Value = GetNullableDBValue(filterConditions.Scope) }, new SqlParameter { ParameterName = "@nameFilter", DbType = DbType.String, Value = GetNullableDBValue(filterConditions.Name) }, new SqlParameter { ParameterName = "@descriptionFilter", DbType = DbType.String, Value = GetNullableDBValue(filterConditions.Description) }, new SqlParameter { ParameterName = "@statusFilter", DbType = DbType.String, Value = GetNullableDBValue(filterConditions.Status) }, new SqlParameter { ParameterName = "@recommendationFilter", DbType = DbType.String, Value = GetNullableDBValue(filterConditions.Recommendation) }, new SqlParameter { ParameterName = "@valueFilter", DbType = DbType.String, Value = GetNullableDBValue(filterConditions.Value) }, new SqlParameter { ParameterName = "@sectionFilter", DbType = DbType.String, Value = GetNullableDBValue(filterConditions.Section) }, }; var data = SqlHelper.ExecuteDataset(conn, CommandType.Text, Properties.Resources.ReadEnvironmentCheckRecommendation, parameters); if (false == String.IsNullOrEmpty(sortColumn) && false == String.IsNullOrEmpty(gridConditions.SortDirection)) { String sortExpression = String.Format("{0} {1}", sortColumn, gridConditions.SortDirection); data.Tables[0].DefaultView.Sort = sortExpression; return(data.Tables[0].DefaultView.ToTable()); } return(data.Tables[0]); } }
public DataTable GetServerDetails(GridConditions gridConditions, EnvironmentCheckServerFilterConditions filterConditions, EnvironmentCheckServerFilterOperands filterOperands) { using (var conn = (SqlConnection)this.connectionFactory.GetEddsPerformanceConnection()) { var parameters = new[] { //Grid conditions //Filter conditions new SqlParameter { ParameterName = "@serverNameFilter", DbType = DbType.String, Value = GetNullableDBValue(filterConditions.ServerName) }, new SqlParameter { ParameterName = "@osnameFilter", DbType = DbType.String, Value = GetNullableDBValue(filterConditions.OSName) }, new SqlParameter { ParameterName = "@osversionFilter", DbType = DbType.String, Value = GetNullableDBValue(filterConditions.OSVersion) }, new SqlParameter { ParameterName = "@logicalProcessorsFilter", DbType = DbType.String, Value = GetNullableDBValue(filterConditions.LogicalProcessors) }, new SqlParameter { ParameterName = "@hypterthreadedFilter", DbType = DbType.String, Value = GetNullableDBValue(filterConditions.Hyperthreaded) }, //Filter operands new SqlParameter { ParameterName = "@logicalProcessorsOperator", DbType = DbType.Int32, Value = (int)filterOperands.LogicalProcessors }, //Page-level filters }; var data = SqlHelper.ExecuteDataset(conn, CommandType.Text, Properties.Resources.ReadEnvironmentCheckServerDetails, parameters); if (false == String.IsNullOrEmpty(gridConditions.SortColumn) && false == String.IsNullOrEmpty(gridConditions.SortDirection)) { String sortExpression = String.Format("{0} {1}", gridConditions.SortColumn, gridConditions.SortDirection); data.Tables[0].DefaultView.Sort = sortExpression; return(data.Tables[0].DefaultView.ToTable()); } return(data.Tables[0]); } }
public void GetUptimeHours(UptimeViewColumns sortColumn) { // Arrange var gridConditions = new GridConditions(); var filterConditions = new UptimeViewFilterConditions(); var filterOperands = new UptimeViewFilterOperands(); //Grid conditions gridConditions.SortColumn = sortColumn.ToString(); gridConditions.SortDirection = "ASC"; gridConditions.TimezoneOffset = 0; gridConditions.StartRow = 1; gridConditions.EndRow = 25; // Act var result = this.reportRepository.GetUptimeHours(gridConditions, filterConditions, filterOperands); // Assert Assert.That(result, Is.Not.Null); Assert.That(result, Is.Not.Empty); }
public void GetSystemLoadServerDetails(LoadViewColumns sortColumn) { //Arrange var gridConditions = new GridConditions(); var filterConditions = new LoadViewFilterConditions(); var filterOperands = new LoadViewFilterOperands(); //Grid conditions gridConditions.SortColumn = sortColumn.ToString(); gridConditions.SortDirection = "ASC"; gridConditions.TimezoneOffset = 0; gridConditions.StartRow = 1; gridConditions.EndRow = 25; //Filter conditions filterConditions.Server = ""; filterConditions.ServerType = ""; //Filter operands filterOperands.OverallScore = FilterOperand.Equals; filterOperands.CPUUtilizationScore = FilterOperand.Equals; filterOperands.RAMUtilizationScore = FilterOperand.Equals; filterOperands.MemorySignalScore = FilterOperand.Equals; filterOperands.WaitsScore = FilterOperand.Equals; filterOperands.VirtualLogFilesScore = FilterOperand.Equals; filterOperands.LatencyScore = FilterOperand.Equals; //Page-level filters gridConditions.StartDate = DateTime.Now.AddYears(-1); gridConditions.EndDate = DateTime.Now.AddDays(1); //Act var result = this.reportRepository.GetSystemLoadServerDetails(gridConditions, filterConditions, filterOperands); //Assert Assert.That(result, Is.Not.Null); Assert.That(result, Is.Not.Empty); }
public virtual LoadViewGrid ServerHours(GridConditions gridConditions, LoadViewFilterConditions filterConditions, LoadViewFilterOperands filterOperands) { var grid = new LoadViewGrid(); var dt = this.reportRepository.GetSystemLoadServerDetails(gridConditions, filterConditions, filterOperands); if (dt.Count > 1) { var searchUsers = dt[0]; grid.Data = (from DataRow d in searchUsers.Rows select new SystemLoadServerHourInfo { Index = d.Field <int>("RowNumber"), ServerId = d.Field <int>("ServerArtifactId"), Server = d.Field <string>("Server"), ServerType = d.Field <string>("ServerType"), SummaryDayHour = d.Field <DateTime>("SummaryDayHour"), OverallScore = d.Field <int?>("Score").GetValueOrDefault(100), CPUScore = d.Field <int?>("CPUScore").GetValueOrDefault(100), RAMScore = d.Field <int?>("RAMScore").GetValueOrDefault(100), MemorySignalStateScore = d.Field <int?>("MemorySignalStateScore").GetValueOrDefault(100), MemorySignalStateRatio = d.Field <int?>("MemorySignalStateRatio").GetValueOrDefault(0), Pageouts = d.Field <int?>("Pageouts").GetValueOrDefault(0), WaitsScore = d.Field <int?>("WaitsScore").GetValueOrDefault(100), VirtualLogFilesScore = d.Field <int?>("VirtualLogFilesScore").GetValueOrDefault(100), MaxVirtualLogFiles = d.Field <int?>("MaxVirtualLogFiles").GetValueOrDefault(0), LatencyScore = d.Field <int?>("LatencyScore").GetValueOrDefault(100), HighestLatencyDatabase = d.Field <string>("HighestLatencyDatabase"), ReadLatencyMs = d.Field <int?>("ReadLatencyMs").GetValueOrDefault(0), WriteLatencyMs = d.Field <int?>("WriteLatencyMs").GetValueOrDefault(0), IsDataFile = d.Field <bool?>("IsDataFile").GetValueOrDefault(false), IsActiveWeeklySample = d.Field <bool>("IsActiveArrivalRateSample") }).AsQueryable(); var resultInfo = dt[1]; grid.Count = resultInfo.Rows.Count > 0 ? resultInfo.Rows[0].Field <int?>("FilteredCount").GetValueOrDefault(0) : 0; } return(grid); }
public void GetSystemLoadWaitsDetails(WaitsViewColumns sortColumn) { //Arrange var gridConditions = new GridConditions(); var filterConditions = new WaitsViewFilterConditions(); var filterOperands = new WaitsViewFilterOperands(); //Grid conditions gridConditions.SortColumn = sortColumn.ToString(); gridConditions.SortDirection = "ASC"; gridConditions.TimezoneOffset = 0; gridConditions.StartRow = 1; gridConditions.EndRow = 25; //Filter conditions filterConditions.Server = ""; filterConditions.WaitType = ""; //Filter operands filterOperands.OverallScore = FilterOperand.Equals; filterOperands.SignalWaitsRatio = FilterOperand.Equals; filterOperands.SignalWaitTime = FilterOperand.Equals; filterOperands.TotalWaitTime = FilterOperand.Equals; filterOperands.PercentOfCPUThreshold = FilterOperand.Equals; filterOperands.DifferentialWaitingTasksCount = FilterOperand.Equals; //Page-level filters gridConditions.StartDate = DateTime.Now.AddYears(-1); gridConditions.EndDate = DateTime.Now.AddDays(1); //Act var result = this.reportRepository.GetSystemLoadWaitsDetails(gridConditions, filterConditions, filterOperands); //Assert Assert.That(result, Is.Not.Null); Assert.That(result, Is.Not.Empty); }
public void GetRecoverabilityIntegrityDetails(RecoverabilityIntegrityViewColumns sortColumn) { //Arrange var gridConditions = new GridConditions(); var filterConditions = new RecoverabilityIntegrityViewFilterConditions(); var filterOperands = new RecoverabilityIntegrityViewFilterOperands(); //Grid conditions gridConditions.SortColumn = sortColumn.ToString(); gridConditions.SortDirection = "ASC"; gridConditions.TimezoneOffset = 0; gridConditions.StartRow = 1; gridConditions.EndRow = 25; //Filter conditions //Filter operands filterOperands.RecoverabilityIntegrityScore = FilterOperand.Equals; filterOperands.BackupFrequencyScore = FilterOperand.Equals; filterOperands.BackupCoverageScore = FilterOperand.Equals; filterOperands.DbccFrequencyScore = FilterOperand.Equals; filterOperands.DbccCoverageScore = FilterOperand.Equals; filterOperands.RPOScore = FilterOperand.Equals; filterOperands.RTOScore = FilterOperand.Equals; //Page-level filters gridConditions.StartDate = DateTime.Now.AddYears(-1); gridConditions.EndDate = DateTime.Now.AddDays(1); //Act var result = this.reportRepository.GetRecoverabilityIntegrityDetails(gridConditions, filterConditions, filterOperands); //Assert Assert.That(result, Is.Not.Null); Assert.That(result, Is.Not.Empty); }