示例#1
0
        /// <summary>
        /// Pulls query parameters from the request and converts them to grid and filter conditions for the Server View
        /// </summary>
        /// <returns></returns>
        private SystemLoadServerViewModel PopulateServerModelSettings()
        {
            var model = new SystemLoadServerViewModel();

            var queryParams = this.requestService.GetQueryParamsDecoded(Request);

            //Grid conditions
            model.GridConditions = PopulateCommonGridConditions(queryParams);

            var iSortCol = queryParams.FirstOrDefault(k => k.Key == "iSortCol_0");
            var sSortDir = queryParams.FirstOrDefault(k => k.Key == "sSortDir_0");

            var sortColumn = string.IsNullOrEmpty(iSortCol.Value)
                                ? null
                                : (LoadViewColumns?)System.Enum.Parse(typeof(LoadViewColumns), iSortCol.Value);
            var sortBy = sortColumn?.ToString();

            model.GridConditions.SortIndex     = iSortCol.Value;
            model.GridConditions.SortColumn    = sortBy;
            model.GridConditions.SortDirection = sSortDir.Value;

            //Filter conditions
            var hourFilter      = queryParams.FirstOrDefault(k => k.Key == "sSearch_0");
            var serverFilter    = queryParams.FirstOrDefault(k => k.Key == "sSearch_1");
            var typeFilter      = queryParams.FirstOrDefault(k => k.Key == "sSearch_2");
            var scoreFilter     = queryParams.FirstOrDefault(k => k.Key == "sSearch_3");
            var cpuFilter       = queryParams.FirstOrDefault(k => k.Key == "sSearch_4");
            var ramFilter       = queryParams.FirstOrDefault(k => k.Key == "sSearch_5");
            var memSignalFilter = queryParams.FirstOrDefault(k => k.Key == "sSearch_6");
            var waitsFilter     = queryParams.FirstOrDefault(k => k.Key == "sSearch_7");
            var vlfFilter       = queryParams.FirstOrDefault(k => k.Key == "sSearch_8");
            var latencyFilter   = queryParams.FirstOrDefault(k => k.Key == "sSearch_9");
            var weeklyFilter    = queryParams.FirstOrDefault(k => k.Key == "sSearch_10");

            int      score, cpu, ram, pages, waits, vlf, latency;
            DateTime hour;

            model.FilterConditions = new LoadViewFilterConditions()
            {
                SummaryDayHour = DateTime.TryParse(HttpUtility.UrlDecode(hourFilter.Value), out hour)
                                        ? hour
                                        : (DateTime?)null,
                Server       = serverFilter.Value,
                ServerType   = typeFilter.Value,
                OverallScore = int.TryParse(scoreFilter.Value, out score)
                                        ? score
                                        : (int?)null,
                CPUScore = int.TryParse(cpuFilter.Value, out cpu)
                                        ? cpu
                                        : (int?)null,
                RAMScore = int.TryParse(ramFilter.Value, out ram)
                                        ? ram
                                        : (int?)null,
                MemorySignalScore = int.TryParse(memSignalFilter.Value, out pages)
                                        ? pages
                                        : (int?)null,
                WaitsScore = int.TryParse(waitsFilter.Value, out waits)
                                        ? waits
                                        : (int?)null,
                VirtualLogFilesScore = int.TryParse(vlfFilter.Value, out vlf)
                                        ? vlf
                                        : (int?)null,
                LatencyScore = int.TryParse(latencyFilter.Value, out latency)
                                        ? latency
                                        : (int?)null,
                IsActiveWeeklySample = string.IsNullOrEmpty(weeklyFilter.Value)
                                        ? null
                                        : (bool?)weeklyFilter.Value.Equals("yes", StringComparison.CurrentCultureIgnoreCase)
            };

            //Filter operands
            System.Enum.TryParse <FilterOperand>(queryParams.FirstOrDefault(k => k.Key == "sOperand_3").Value, out model.FilterOperands.OverallScore);
            System.Enum.TryParse <FilterOperand>(queryParams.FirstOrDefault(k => k.Key == "sOperand_4").Value, out model.FilterOperands.CPUUtilizationScore);
            System.Enum.TryParse <FilterOperand>(queryParams.FirstOrDefault(k => k.Key == "sOperand_5").Value, out model.FilterOperands.RAMUtilizationScore);
            System.Enum.TryParse <FilterOperand>(queryParams.FirstOrDefault(k => k.Key == "sOperand_6").Value, out model.FilterOperands.MemorySignalScore);
            System.Enum.TryParse <FilterOperand>(queryParams.FirstOrDefault(k => k.Key == "sOperand_7").Value, out model.FilterOperands.WaitsScore);
            System.Enum.TryParse <FilterOperand>(queryParams.FirstOrDefault(k => k.Key == "sOperand_8").Value, out model.FilterOperands.VirtualLogFilesScore);
            System.Enum.TryParse <FilterOperand>(queryParams.FirstOrDefault(k => k.Key == "sOperand_9").Value, out model.FilterOperands.LatencyScore);

            return(model);
        }