コード例 #1
0
        public async Task <IActionResult> Create(TodoCreateEditViewModel vm)
        {
            if (!ModelState.IsValid)
            {
                return(View(vm));
            }

            var todo = new TodoItem
            {
                Title      = vm.TodoItem.Title,
                Date       = vm.TodoItem.Date,
                CategoryId = vm.TodoItem.CategoryId,
                Complete   = vm.TodoItem.Complete,

                OwnerID = _userManager.GetUserId(User)
            };

            var isAuthorized = await _authorizationService.AuthorizeAsync(
                User, todo,
                Operations.Create);

            if (!isAuthorized.Succeeded)
            {
                return(new ChallengeResult());
            }

            _todoRepo.Add(todo);
            _todoRepo.Save();

            return(RedirectToAction(nameof(List)));
        }
コード例 #2
0
        public async Task <IActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var todo = _todoRepo.Get((int)id);

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

            var isAuthorized = await _authorizationService.AuthorizeAsync(
                User, todo,
                Operations.Update);

            if (!isAuthorized.Succeeded)
            {
                return(new ChallengeResult());
            }

            var vm         = new TodoCreateEditViewModel();
            var categories = _todoRepo.GetCategories();

            vm.TodoItem           = todo;
            vm.CategorySelectList = new SelectList(categories, nameof(TodoCategory.Id), nameof(TodoCategory.Name));

            return(View(vm));
        }
コード例 #3
0
        public async Task <IActionResult> Edit(int id, TodoCreateEditViewModel vm)
        {
            if (!ModelState.IsValid)
            {
                return(View(vm));
            }

            var todo = _todoRepo.Get(id);

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

            var isAuthorized = await _authorizationService.AuthorizeAsync(User, todo,
                                                                          Operations.Update);

            if (!isAuthorized.Succeeded)
            {
                return(new ChallengeResult());
            }

            todo.Title    = vm.TodoItem.Title;
            todo.Date     = vm.TodoItem.Date;
            todo.Category = vm.TodoItem.Category;
            todo.Complete = vm.TodoItem.Complete;

            _todoRepo.Update(todo);
            _todoRepo.Save();

            return(RedirectToAction(nameof(List)));
        }
コード例 #4
0
        public IActionResult Create()
        {
            var vm         = new TodoCreateEditViewModel();
            var categories = _todoRepo.GetCategories();

            vm.CategorySelectList = new SelectList(categories, nameof(TodoCategory.Id), nameof(TodoCategory.Name));
            return(View(vm));
        }
コード例 #5
0
        public TodoCreateEditPage(int id = 0)
        {
            InitializeComponent();

            BindingContext = new TodoCreateEditViewModel(id);
        }