public async Task <IEnumerable <MaintenanceWindow> > ReadSortedAsync(MaintenanceWindowDataTableQuery query)
 {
     using (var conn = connectionFactory.GetEddsPerformanceConnection())
     {
         return(await conn.QueryAsync <MaintenanceWindow>(Resources.MaintenanceWindow_ReadTable, query));
     }
 }
Ejemplo n.º 2
0
        public async Task GetFilteredMaintenanceWindowsAsync_SortByEndDate_Success()
        {
            //Arrange
            var query = new MaintenanceWindowDataTableQuery
            {
                SortColumn = MaintenanceWindowViewColumns.EndTime.ToString()
            };
            var aWindow = new MaintenanceWindow
            {
                EndTime = DateTime.UtcNow
            };
            var bWindow = new MaintenanceWindow
            {
                EndTime = DateTime.UtcNow.AddHours(1)
            };
            var windows = new List <MaintenanceWindow>
            {
                aWindow, bWindow
            };

            this.maintenanceWindowRepositoryMock.Setup(mock => mock.ReadSortedAsync(query)).ReturnsAsync(windows);

            //Act
            var results = await this.maintenanceWindowSchedulingService.GetFilteredMaintenanceWindowsAsync(query);

            //Assert
            Assert.That(results.Data, Is.Not.Empty);
            Assert.That(results.Count, Is.EqualTo(windows.Count));
            Assert.That(results.Data.First(), Is.EqualTo(aWindow));
        }
Ejemplo n.º 3
0
        public async Task GetFilteredMaintenanceWindowsAsync_SortByReasonDesc_Success()
        {
            //Arrange
            var query = new MaintenanceWindowDataTableQuery
            {
                SortColumn        = MaintenanceWindowViewColumns.Reason.ToString(),
                SortDirectionDesc = true
            };
            var aWindow = new MaintenanceWindow
            {
                Reason = MaintenanceWindowReason.RelativityUpgradeRelease
            };
            var bWindow = new MaintenanceWindow
            {
                Reason = MaintenanceWindowReason.SQLUpgrade
            };
            var windows = new List <MaintenanceWindow>
            {
                aWindow, bWindow
            };

            this.maintenanceWindowRepositoryMock.Setup(mock => mock.ReadSortedAsync(query)).ReturnsAsync(windows);

            //Act
            var results = await this.maintenanceWindowSchedulingService.GetFilteredMaintenanceWindowsAsync(query);

            //Assert
            Assert.That(results.Data, Is.Not.Empty);
            Assert.That(results.Count, Is.EqualTo(windows.Count));
            Assert.That(results.Data.First(), Is.EqualTo(bWindow));
        }
        private async Task <string> FetchFileData(MaintenanceWindowDataTableQuery query)
        {
            var grid = await this.maintenanceWindowSchedulingService.GetFilteredMaintenanceWindowsAsync(query);

            var aaData = grid.Data.Select(d => new string[]
            {
                d.StartTime.ToString(FormattingConstants.DateTimeFormat),
                d.EndTime.ToString(FormattingConstants.DateTimeFormat),
                d.Reason.GetDisplayName(),
                WebUtility.HtmlDecode(d.Comments),
                d.DurationHours.ToString()
            }).ToArray();

            using (var sw = new StringWriter())
            {
                var headerArr =
                    Enum.GetValues(typeof(MaintenanceWindowViewColumns))
                    .Cast <MaintenanceWindowViewColumns>()
                    .Select(v => v.GetDisplayName());
                sw.WriteLine(string.Join(",", headerArr));
                foreach (var row in aaData)
                {
                    sw.WriteCsvSafeLine(row);
                }
                return(sw.ToString());
            }
        }
        public async Task ReadSortedAsync_Success()
        {
            //Arrange
            var startTime = DateTime.UtcNow.AddYears(-1);
            var endTime   = DateTime.UtcNow.AddYears(-1).AddDays(2);
            var window    = new MaintenanceWindow
            {
                StartTime = startTime,
                EndTime   = endTime,
                Comments  = "Test Comments",
                Reason    = MaintenanceWindowReason.HardwareMigration
            };
            var query = new MaintenanceWindowDataTableQuery
            {
                CommentFilter = "Test Comments"
            };

            var createResult = await this.maintenanceWindowRepository.CreateAsync(window);

            // Act
            var result = await this.maintenanceWindowRepository.ReadSortedAsync(query);

            //Assert
            Assert.That(result.Any(r => r.Id == createResult.Id), Is.True);
        }
        private IList <MaintenanceWindow> SortResults(IList <MaintenanceWindow> resultList,
                                                      MaintenanceWindowDataTableQuery query)
        {
            var sortColumn = string.IsNullOrEmpty(query.SortColumn) == false
                                ? query.SortColumn
                                : MaintenanceWindowViewColumns.StartTime.ToString();

            return(query.SortDirectionDesc
                                ? resultList.OrderByDescending(mw => SortBy(mw, sortColumn)).ToList()
                                : resultList.OrderBy(mw => SortBy(mw, sortColumn)).ToList());
        }
Ejemplo n.º 7
0
        public async Task GetFilteredMaintenanceWindowsAsync_Success()
        {
            //Arrange
            var query   = new MaintenanceWindowDataTableQuery();
            var windows = new List <MaintenanceWindow>
            {
                new MaintenanceWindow()
            };

            this.maintenanceWindowRepositoryMock.Setup(mock => mock.ReadSortedAsync(query)).ReturnsAsync(windows);

            //Act
            var results = await this.maintenanceWindowSchedulingService.GetFilteredMaintenanceWindowsAsync(query);

            //Assert
            Assert.That(results.Data, Is.Not.Empty);
        }
        private MaintenanceWindowDataTableQuery PopulateMaintenanceWindowQuery()
        {
            var query = new MaintenanceWindowDataTableQuery();

            var queryParams = requestService.GetQueryParams(Request);

            query.StartTimeFilter = queryParams.FirstOrDefault(k => k.Key == "sSearch_1").Value;
            query.EndTimeFilter   = queryParams.FirstOrDefault(k => k.Key == "sSearch_2").Value;
            query.ReasonFilter    = queryParams.FirstOrDefault(k => k.Key == "sSearch_3").Value;
            query.CommentFilter   = queryParams.FirstOrDefault(k => k.Key == "sSearch_4").Value;

            var startTimeOperator = queryParams.FirstOrDefault(k => k.Key == "sOperand_1");

            query.StartTimeOperator = string.IsNullOrEmpty(startTimeOperator.Value) ? FilterOperand.Equals : (FilterOperand)System.Enum.Parse(typeof(FilterOperand), startTimeOperator.Value);
            var endTimeOperator = queryParams.FirstOrDefault(k => k.Key == "sOperand_2");

            query.EndTimeOperator = string.IsNullOrEmpty(endTimeOperator.Value) ? FilterOperand.Equals : (FilterOperand)System.Enum.Parse(typeof(FilterOperand), endTimeOperator.Value);
            var reasonOperator = queryParams.FirstOrDefault(k => k.Key == "sOperand_3");

            query.ReasonOperator = string.IsNullOrEmpty(reasonOperator.Value) ? FilterOperand.Equals : (FilterOperand)System.Enum.Parse(typeof(FilterOperand), reasonOperator.Value);

            var sEcho = queryParams.FirstOrDefault(k => k.Key == "sEcho");

            query.sEcho = sEcho.Value;

            var iDisplayStart = queryParams.FirstOrDefault(k => k.Key == "iDisplayStart");

            query.StartRow = string.IsNullOrEmpty(iDisplayStart.Value) ? 1 : int.Parse(iDisplayStart.Value) + 1;
            var iDisplayLength = queryParams.FirstOrDefault(k => k.Key == "iDisplayLength");

            query.EndRow = (string.IsNullOrEmpty(iDisplayLength.Value) ? 1 : int.Parse(iDisplayLength.Value)) + query.StartRow - 1;

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

            query.SortDirectionDesc = string.IsNullOrEmpty(sSortDir.Value) || sSortDir.Value == "desc";
            MaintenanceWindowViewColumns sortColumn;

            if (Enum.TryParse(iSortCol.Value, out sortColumn) && Enum.IsDefined(typeof(MaintenanceWindowViewColumns), sortColumn))
            {
                query.SortColumn = sortColumn.ToString();
            }

            return(query);
        }
        public async Task <GeneralCheckGrid <MaintenanceWindow> > GetFilteredMaintenanceWindowsAsync(MaintenanceWindowDataTableQuery query)
        {
            var grid    = new GeneralCheckGrid <MaintenanceWindow>();
            var results = await this.maintenanceWindowRepository.ReadSortedAsync(query);

            var resultList = results as IList <MaintenanceWindow> ?? results.ToList();

            // Sort
            resultList = SortResults(resultList, query);

            // paging (start row/end row)
            // Add sort/ start row/end row to MWDataTableQuery
            var gridCount = resultList.Count;

            grid.Data = resultList.AsQueryable();

            if (0 < query.StartRow)
            {
                grid.Data = grid.Data.Skip(query.StartRow - 1);
            }
            if (0 < query.EndRow)
            {
                grid.Data = grid.Data.Take(query.EndRow - query.StartRow + 1);
            }

            grid.Count = gridCount;

            return(grid);
        }