internal static RecoverabilityIntegrityViewFilterOperands PopulateRecoverabilityIntegrityHoursFilterOperands(List <KeyValuePair <string, string> > queryParams)
        {
            var filterOperands = new RecoverabilityIntegrityViewFilterOperands();

            System.Enum.TryParse <FilterOperand>(queryParams.FirstOrDefault(k => k.Key == "sOperand_1").Value,
                                                 out filterOperands.RecoverabilityIntegrityScore);
            System.Enum.TryParse <FilterOperand>(queryParams.FirstOrDefault(k => k.Key == "sOperand_2").Value,
                                                 out filterOperands.BackupFrequencyScore);
            System.Enum.TryParse <FilterOperand>(queryParams.FirstOrDefault(k => k.Key == "sOperand_3").Value,
                                                 out filterOperands.BackupCoverageScore);
            System.Enum.TryParse <FilterOperand>(queryParams.FirstOrDefault(k => k.Key == "sOperand_4").Value,
                                                 out filterOperands.DbccFrequencyScore);
            System.Enum.TryParse <FilterOperand>(queryParams.FirstOrDefault(k => k.Key == "sOperand_5").Value,
                                                 out filterOperands.DbccCoverageScore);
            System.Enum.TryParse <FilterOperand>(queryParams.FirstOrDefault(k => k.Key == "sOperand_6").Value,
                                                 out filterOperands.RPOScore);
            System.Enum.TryParse <FilterOperand>(queryParams.FirstOrDefault(k => k.Key == "sOperand_7").Value,
                                                 out filterOperands.RTOScore);

            return(filterOperands);
        }
Пример #2
0
        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);
        }
        /// <summary>
        /// Retrieves data for the Recoverability/Integrity View
        /// </summary>
        /// <param name="gridConditions"></param>
        /// <param name="filterConditions"></param>
        /// <returns></returns>
        public DataTableCollection GetRecoverabilityIntegrityDetails(GridConditions gridConditions, RecoverabilityIntegrityViewFilterConditions filterConditions, RecoverabilityIntegrityViewFilterOperands 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 = "@SummaryDayHour", DbType = DbType.DateTime, Value = filterConditions.SummaryDayHour
                        },
                        new SqlParameter {
                            ParameterName = "@RecoverabilityIntegrityScore", DbType = DbType.Int32, Value = filterConditions.RecoverabilityIntegrityScore
                        },
                        new SqlParameter {
                            ParameterName = "@BackupFrequencyScore", DbType = DbType.Int32, Value = filterConditions.BackupFrequencyScore
                        },
                        new SqlParameter {
                            ParameterName = "@BackupCoverageScore", DbType = DbType.Int32, Value = filterConditions.BackupCoverageScore
                        },
                        new SqlParameter {
                            ParameterName = "@DbccFrequencyScore", DbType = DbType.Int32, Value = filterConditions.DbccFrequencyScore
                        },
                        new SqlParameter {
                            ParameterName = "@DbccCoverageScore", DbType = DbType.Int32, Value = filterConditions.DbccCoverageScore
                        },
                        new SqlParameter {
                            ParameterName = "@RPOScore", DbType = DbType.Int32, Value = filterConditions.RPOScore
                        },
                        new SqlParameter {
                            ParameterName = "@RTOScore", DbType = DbType.Int32, Value = filterConditions.RTOScore
                        },
                        //Filter operands
                        new SqlParameter {
                            ParameterName = "@RecoverabilityIntegrityScoreOperand", DbType = DbType.String, Value = filterOperands.RecoverabilityIntegrityScore.GetSqlOperation()
                        },
                        new SqlParameter {
                            ParameterName = "@BackupFrequencyScoreOperand", DbType = DbType.String, Value = filterOperands.BackupFrequencyScore.GetSqlOperation()
                        },
                        new SqlParameter {
                            ParameterName = "@BackupCoverageScoreOperand", DbType = DbType.String, Value = filterOperands.BackupCoverageScore.GetSqlOperation()
                        },
                        new SqlParameter {
                            ParameterName = "@DbccFrequencyScoreOperand", DbType = DbType.String, Value = filterOperands.DbccFrequencyScore.GetSqlOperation()
                        },
                        new SqlParameter {
                            ParameterName = "@DbccCoverageScoreOperand", DbType = DbType.String, Value = filterOperands.DbccCoverageScore.GetSqlOperation()
                        },
                        new SqlParameter {
                            ParameterName = "@RPOScoreOperand", DbType = DbType.String, Value = filterOperands.RPOScore.GetSqlOperation()
                        },
                        new SqlParameter {
                            ParameterName = "@RTOScoreOperand", DbType = DbType.String, Value = filterOperands.RTOScore.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_RecoverabilityIntegrityReport", parameters);
                    return(data.Tables);
                }
            }
        }
        public virtual RecoverabilityIntegrityViewGrid RecoverabilityIntegritySummary(GridConditions gridConditions, RecoverabilityIntegrityViewFilterConditions filterConditions, RecoverabilityIntegrityViewFilterOperands filterOperands)
        {
            var grid = new RecoverabilityIntegrityViewGrid();
            var dt   = this.reportRepository.GetRecoverabilityIntegrityDetails(gridConditions, filterConditions, filterOperands);

            if (dt.Count > 1)
            {
                var searchUsers = dt[0];
                grid.Data = (from DataRow d in searchUsers.Rows
                             select new RecoverabilityIntegrityScoreInfo
                {
                    Index = d.Field <int>("RowNumber"),
                    SummaryDayHour = d.Field <DateTime?>("SummaryDayHour").GetValueOrDefault(DateTime.UtcNow),
                    RecoverabilityIntegrityScore = d.Field <int?>("RecoverabilityIntegrityScore").GetValueOrDefault(100),
                    BackupFrequencyScore = d.Field <int?>("BackupFrequencyScore").GetValueOrDefault(100),
                    BackupCoverageScore = d.Field <int?>("BackupCoverageScore").GetValueOrDefault(100),
                    DbccFrequencyScore = d.Field <int?>("DbccFrequencyScore").GetValueOrDefault(100),
                    DbccCoverageScore = d.Field <int?>("DbccCoverageScore").GetValueOrDefault(100),
                    RPOScore = d.Field <int?>("RPOScore").GetValueOrDefault(100),
                    RTOScore = d.Field <int?>("RTOScore").GetValueOrDefault(100),
                    WorstRPODatabase = d.Field <string>("WorstRPODatabase"),
                    WorstRTODatabase = d.Field <string>("WorstRTODatabase"),
                    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 RecoverabilityIntegrityViewModel()
 {
     GridConditions   = new GridConditions();
     FilterConditions = new RecoverabilityIntegrityViewFilterConditions();
     FilterOperands   = new RecoverabilityIntegrityViewFilterOperands();
 }