public async Task <IActionResult> DeleteConfirmed([Bind("TodoItemID,TagID")] TodoItemTagViewModel todoItemTag)
        {
            var todoItemTagVo = mapper.Map <TodoItemTagVo>(todoItemTag);
            await provider.Delete(todoItemTagVo);

            return(RedirectToAction(nameof(Index)));
        }
        public async Task <IActionResult> Create([Bind("TodoItemID,TagID")] TodoItemTagViewModel todoItemTag)
        {
            if (ModelState.IsValid)
            {
                var todoItemTagVo = mapper.Map <TodoItemTagVo>(todoItemTag);
                await provider.Add(todoItemTagVo);

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["TagID"]      = new SelectList(tagProvider.GetEnum(), "ID", "ID", todoItemTag.TagID);
            ViewData["TodoItemID"] = new SelectList(todoItemProvider.GetEnum(), "ID", "Name", todoItemTag.TodoItemID);
            return(View(todoItemTag));
        }
        public async Task <IActionResult> Edit(int?oldTodoItemID, int?oldTagID, [Bind("TodoItemID,TagID")] TodoItemTagViewModel todoItemTag)
        {
            if (todoItemTag == null)
            {
                return(NotFound());
            }
            var oldTodoItemTag = await provider.Get((int)oldTagID, (int)oldTodoItemID);

            if (oldTodoItemTag == null)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    await provider.Edit(mapper.Map <TodoItemTagVo>(oldTodoItemTag), mapper.Map <TodoItemTagVo>(todoItemTag));
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!provider.Exists(todoItemTag.TagID, todoItemTag.TodoItemID))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["TodoItemID"] = new SelectList(todoItemProvider.GetEnum(), "ID", "Name", todoItemTag.TodoItemID);
            ViewData["TagID"]      = new SelectList(tagProvider.GetEnum(), "ID", "Name", todoItemTag.TagID);
            return(View(todoItemTag));
        }