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);
        }
示例#2
0
        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);
        }
示例#3
0
 public SystemLoadWaitsViewModel()
 {
     GridConditions   = new GridConditions();
     FilterConditions = new WaitsViewFilterConditions();
     FilterOperands   = new WaitsViewFilterOperands();
 }