public IActionResult DetailListPartial(int todoListId, bool doneItemsHidden, bool descendingSortOrder) { var todoList = dbContext.SingleTodoList(todoListId); var viewmodel = TodoListDetailViewmodelFactory.Create(todoList, descendingSortOrder, doneItemsHidden); return(PartialView("_DetailListPartial", viewmodel)); }
public IActionResult Detail(int todoListId, bool orderByRank = false) { var todoList = dbContext.SingleTodoList(todoListId); var viewmodel = TodoListDetailViewmodelFactory.Create(todoList, orderByRank); return(View(viewmodel)); }
public IActionResult Detail(int todoListId, string sortOrder) { var todoList = dbContext.SingleTodoList(todoListId); var viewmodel = TodoListDetailViewmodelFactory.Create(todoList, sortOrder); return(View(viewmodel)); }
public IActionResult Detail(int todoListId, bool hideDoneItems) { var todoList = dbContext.SingleTodoList(todoListId); var viewmodel = TodoListDetailViewmodelFactory.Create(todoList, hideDoneItems); return(View(viewmodel)); }
public IActionResult Detail(int todoListId) { var userId = User.Id(); var todoList = dbContext.SingleTodoList(todoListId); var viewmodel = TodoListDetailViewmodelFactory.Create(todoList, userId); return(View(viewmodel)); }
public async Task <TodoListDetailViewmodel> GetTodoListDetailAsync(int todoListId, bool hideDone) { var todoList = await _dbContext.TodoLists .Include(tl => tl.Owner) .SingleAsync(tl => tl.TodoListId == todoListId); return(TodoListDetailViewmodelFactory.Create(todoList)); }
public void Create_TodoListMappedByImportance() { var viewmodel = TodoListDetailViewmodelFactory.Create(srcTodoItem); var items = viewmodel.Items.ToList(); Assert.Equal(Importance.High, items[0].Importance); Assert.Equal(Importance.Medium, items[1].Importance); Assert.Equal(Importance.Low, items[2].Importance); }
public void ShouldOrderByRankIfOrderByRankIsTrue() { var todoListViewModel = TodoListDetailViewmodelFactory.Create(todoList, true); var items = todoListViewModel.Items.ToList(); Assert.Equal(1, items[0].Rank); Assert.Equal(2, items[1].Rank); Assert.Null(items[2].Rank); }
public void ShouldOrderByImportanceIfOrderByRankIsFalse() { var todoListViewModel = TodoListDetailViewmodelFactory.Create(todoList, false); var items = todoListViewModel.Items.ToList(); Assert.Equal(Importance.High, items[0].Importance); Assert.Equal(Importance.Medium, items[1].Importance); Assert.Equal(Importance.Low, items[2].Importance); }
public IActionResult Detail(int todoListId, bool showCompleted = true, string sortOrder = "importance") { ViewData["ShowCompleted"] = showCompleted; ViewData["SortOrder"] = sortOrder; var todoList = dbContext.SingleTodoList(todoListId); var viewmodel = TodoListDetailViewmodelFactory.Create(todoList, showCompleted, sortOrder); return(View(viewmodel)); }
public AndHideCompletedItemsFalse() { var user = new IdentityUser("*****@*****.**"); user.Email = user.UserName; var todoList = new TestTodoListBuilder(user, "shopping list") .WithItem("Completed Item", Importance.Medium, completed: true) .WithItem("Uncompleted Item", Importance.Medium) .Build(); resultViewModel = TodoListDetailViewmodelFactory.Create(todoList, false, TodoListSortFields.Default); }
public WhenTodoListDetailIsCreated() { srcTodoList = new TestTodoListBuilder(new IdentityUser("*****@*****.**"), "shopping") .WithItem("bread", Importance.High) .WithItem("milk", Importance.High) .WithItem("cheese", Importance.Medium) .WithItem("lettuce", Importance.Low) .WithItem("tomato", Importance.Medium) .Build(); resultFields = TodoListDetailViewmodelFactory.Create(srcTodoList, false, false); }
public void Create_OrdersByImportance_WhenOrderByRankIsFalse() { // Act var viewmodel = TodoListDetailViewmodelFactory.Create(_todoList, false); // Assert var items = viewmodel.Items.ToList(); Assert.Equal(Importance.High, items[0].Importance); Assert.Equal(Importance.Medium, items[1].Importance); Assert.Equal(Importance.Low, items[2].Importance); }
public AndOrderByFieldRank() { var user = new IdentityUser("*****@*****.**"); user.Email = user.UserName; var todoList = new TestTodoListBuilder(user, "shopping list") .WithItem("1", Importance.Low, rank: 3) .WithItem("2", Importance.High, rank: 2) .WithItem("3", Importance.Medium, rank: 1) .Build(); resultViewModel = TodoListDetailViewmodelFactory.Create(todoList, true, TodoListSortFields.Rank); }
public void Create_OrdersByRank_WhenOrderByRankIsTrue() { // Act var viewmodel = TodoListDetailViewmodelFactory.Create(_todoList, true); // Assert var items = viewmodel.Items.ToList(); Assert.Equal(1, items[0].Rank); Assert.Equal(2, items[1].Rank); Assert.Null(items[2].Rank); // I'm using Xunit's Assert to do the assertions because the other unit tests do the same // but I also quite like using the FluentAssertions nuget package https://fluentassertions.com/introduction }
public WhenTodoListDetailHidesDone() { srcTodoList = new TestTodoListBuilder(new IdentityUser("*****@*****.**"), "shopping") .WithItem("bread", Importance.High) .WithItem("milk", Importance.High) .WithItem("cheese", Importance.Medium) .WithItem("lettuce", Importance.Low) .WithItem("tomato", Importance.Medium) .Build(); srcTodoList.Items.FirstOrDefault().IsDone = true; resultFields = TodoListDetailViewmodelFactory.Create(srcTodoList, true, false); }
public async Task <IActionResult> Detail(int todoListId, bool hideCompletedItems, TodoListSortFields orderByField) { var todoList = dbContext.SingleTodoList(todoListId); var viewmodel = TodoListDetailViewmodelFactory.Create(todoList, hideCompletedItems, orderByField); var userNames = viewmodel.Items .Select(i => i.ResponsibleParty.Email) .Distinct() .ToDictionary(i => i, i => gravatarService.GetUserFullName(i)); foreach (var todoItem in viewmodel.Items) { todoItem.ResponsibleParty.FullName = await userNames[todoItem.ResponsibleParty.Email]; } return(View(viewmodel)); }
public WhenTodoListDetailOrderedByRank() { srcTodoList = new TestTodoListBuilder(new IdentityUser("*****@*****.**"), "shopping") .WithItem("bread", Importance.High) .WithItem("milk", Importance.High) .WithItem("cheese", Importance.Medium) .WithItem("lettuce", Importance.Low) .WithItem("tomato", Importance.Medium) .Build(); srcTodoList.Items.ElementAt(0).Rank = 5; srcTodoList.Items.ElementAt(1).Rank = 4; srcTodoList.Items.ElementAt(2).Rank = 3; srcTodoList.Items.ElementAt(3).Rank = 2; srcTodoList.Items.ElementAt(4).Rank = 1; resultFields = TodoListDetailViewmodelFactory.Create(srcTodoList, hideDone: false, orderByRank: true); }
public IActionResult Detail(int todoListId, bool hideDoneItems, string sortOrder) { var todoList = dbContext.SingleTodoList(todoListId); switch (sortOrder) { case "rank_asc": todoList.Items = todoList.Items.OrderBy(item => item.Rank).ToList(); break; default: todoList.Items = todoList.Items.OrderBy(item => item.Importance).ToList(); break; } if (hideDoneItems) { todoList.Items = todoList.Items.Where(item => !item.IsDone).ToList(); } var viewmodel = TodoListDetailViewmodelFactory.Create(todoList); return(View(viewmodel)); }
public void ShouldNotHaveAlreadySelectedSortOrder(string sortOrder) { var viewmodel = TodoListDetailViewmodelFactory.Create(todoList, sortOrder); Assert.All(viewmodel.SortOrders, so => Assert.True(so != sortOrder)); }
public void ShouldHaveItemsSorted(string sortOrder, ICollection <TodoItemSummaryViewmodel> sortedItems) { var viewmodel = TodoListDetailViewmodelFactory.Create(todoList, sortOrder); Assert.Equal(sortedItems.First().Title, viewmodel.Items.First().Title); }
private TodoListDetailViewmodel CreateDetailsViewModel(int todoListId, bool?hideCompletedItems = null, string orderBy = null) { var todoList = dbContext.SingleTodoList(todoListId); return(TodoListDetailViewmodelFactory.Create(todoList, hideCompletedItems, orderBy)); }