public async Task <IEnumerable <MaintenanceWindow> > ReadSortedAsync(MaintenanceWindowDataTableQuery query) { using (var conn = connectionFactory.GetEddsPerformanceConnection()) { return(await conn.QueryAsync <MaintenanceWindow>(Resources.MaintenanceWindow_ReadTable, query)); } }
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)); }
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()); }
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); }