public async Task <ActionResult> Index(Guid id, UpdateHistoryViewModel model, string command) { if (model.SelectedScreen == "date" && command == "search" && !ModelState.IsValid) { int screenId = 0; int.TryParse(model.SelectedScreen, out screenId); var screens = await mediator.SendAsync(new GetNotificationAuditScreens()); var response = await mediator.SendAsync(new GetNotificationAuditTable(id, model.PageNumber, screenId, null, null)); model.Screens = screens.ToList(); model.PageSize = response.PageSize; model.UpdateHistoryItems = response.TableData.ToList(); model.NumberOfFilterdNotificationAudits = response.NumberOfFilteredNotificationAudits; return(View(model)); } if (model.SelectedScreen == "date" && command == "search") { DateTime startDate = new DateTime(model.StartYear.GetValueOrDefault(), model.StartMonth.GetValueOrDefault(), model.StartDay.GetValueOrDefault()); DateTime endDate = new DateTime(model.EndYear.GetValueOrDefault(), model.EndMonth.GetValueOrDefault(), model.EndDay.GetValueOrDefault()); TempData["startDate"] = startDate; TempData["endDate"] = endDate; return(RedirectToAction("Index", new { filter = model.SelectedScreen })); } return(RedirectToAction("Index", new { filter = model.SelectedScreen })); }
public void StartDateIsAfterEndDate_ValidationError() { UpdateHistoryViewModel vm = this.CreateViewModel(); vm.SetDates(DateTime.Now, DateTime.Now.AddDays(-1)); var result = ValidateModel(vm); Assert.Equal(true, result.Count > 0); Assert.Collection(result, item => Assert.Contains(IndexResources.FromDateAfterToDate, item.ErrorMessage)); }
public void AddCorrectDateFilter_ValidationSuccess() { UpdateHistoryViewModel vm = this.CreateViewModel(); vm.StartDay = 1; vm.StartMonth = 1; vm.StartYear = 2019; vm.EndDay = 2; vm.EndMonth = 1; vm.EndYear = 2019; Assert.Equal(true, ValidateModel(vm).Count == 0); }
public void CheckFilterList() { UpdateHistoryViewModel vm = this.CreateViewModel(); foreach (var selectListItem in vm.FilterTerms.Where(p => p.Text != "Date" && p.Text != "View all")) { Assert.Equal(true, vm.Screens.Count(p => p.ScreenName == selectListItem.Text) > 0); Assert.Equal(true, vm.Screens.Count(p => p.Id == int.Parse(selectListItem.Value)) > 0); } Assert.Equal(true, vm.FilterTerms.Count(p => p.Text == "View all") > 0); Assert.Equal(true, vm.FilterTerms.Count(p => p.Text == "Date") > 0); Assert.Equal(true, vm.FilterTerms.Count(p => p.Value == string.Empty) == 1); Assert.Equal(true, vm.FilterTerms.Count(p => p.Value == "date") == 1); }
public async Task <ActionResult> Index(Guid id, string filter, int page = 1) { DateTime startDate = new DateTime(); DateTime endDate = new DateTime(); if (filter == "date" && TempData.ContainsKey("startDate") && TempData.ContainsKey("endDate")) { startDate = DateTime.Parse(TempData["startDate"].ToString()); endDate = DateTime.Parse(TempData["endDate"].ToString()); TempData["startDate"] = filter == "date" ? startDate.ToString() : null; TempData["endDate"] = filter == "date" ? endDate.ToString() : null; } else { startDate = DateTime.MinValue; endDate = DateTime.MaxValue; TempData.Remove("startDate"); TempData.Remove("endDate"); } int screenId = 0; int.TryParse(filter, out screenId); var response = await mediator.SendAsync(new GetNotificationAuditTable(id, page, screenId, startDate, endDate)); var screens = await mediator.SendAsync(new GetNotificationAuditScreens()); var model = new UpdateHistoryViewModel(response, screens); model.NotificationId = id; model.SelectedScreen = filter; model.HasHistoryItems = model.NumberOfNotificationAudits == 0 ? false : true; model.SetDates(startDate, endDate); return(View(model)); }
public void AddEmptyDates_ValidationFailure() { UpdateHistoryViewModel vm = this.CreateViewModel(); vm.StartDay = null; vm.StartMonth = null; vm.StartYear = null; vm.EndDay = null; vm.EndMonth = null; vm.EndYear = null; var result = ValidateModel(vm); Assert.Equal(true, result.Count > 0); Assert.Collection(result, item => Assert.Contains(IndexResources.DayError, item.ErrorMessage), item => Assert.Contains(IndexResources.MonthError, item.ErrorMessage), item => Assert.Contains(IndexResources.YearError, item.ErrorMessage), item => Assert.Contains(IndexResources.DayError, item.ErrorMessage), item => Assert.Contains(IndexResources.MonthError, item.ErrorMessage), item => Assert.Contains(IndexResources.YearError, item.ErrorMessage)); }