Esempio n. 1
0
        public IActionResult Put(long id, [FromBody] TodoUpdateModel todo)
        {
            if (todo == null)
            {
                return(BadRequest("Todo is null."));
            }
            Todo.Domain.Todo todoToUpdate = _dataService.Get(id);
            if (todoToUpdate == null)
            {
                return(NotFound("The Todo record couldn't be found."));
            }

            var user = _userDataService.GetByEmail(User.Identity.Name);

            if (_userDataService.CanUserManageTodo(user, todoToUpdate))
            {
                _dataService.Update(todoToUpdate, new Todo.Domain.Todo {
                    Text = todo.Text, IsDone = todo.IsDone
                });
                return(NoContent());
            }
            else
            {
                return(Unauthorized());
            }
        }
Esempio n. 2
0
        public IActionResult Get(long id)
        {
            Todo.Domain.Todo todo = _dataService.Get(id);
            if (todo == null)
            {
                return(NotFound("Todo couldn't be found."));
            }

            var user = _userDataService.GetByEmail(User.Identity.Name);

            if (user.UserRole == 1)
            {
                return(Ok(todo.Text));
            }
            else
            {
                if (_userDataService.CanUserManageTodo(user, todo))
                {
                    return(Ok(todo.Text));
                }
                else
                {
                    return(Unauthorized());
                }
            }
        }
Esempio n. 3
0
        public bool CanUserManageTodo(User user, Todo.Domain.Todo todo)
        {
            var userList = _todoContext.TodoList.FirstOrDefault(u => u.UserId == user.UserId);

            if (userList != null)
            {
                return(userList.TodoListId == todo.TodoListId);
            }
            else
            {
                return(false);
            }
        }
Esempio n. 4
0
        public IActionResult Post([FromBody] TodoPostModel todo)
        {
            var user = _userDataService.GetByEmail(User.Identity.Name);

            if (user.UserRole == 1)
            {
                return(BadRequest("Administrator cannot create new todo"));
            }

            if (todo == null)
            {
                return(BadRequest("Todo is null."));
            }

            var newTodo = new Todo.Domain.Todo {
                Text = todo.Text, IsDone = false, TodoListId = _userDataService.GetUsersTodoListId(_userDataService.GetByEmail(User.Identity.Name))
            };

            _dataService.Add(newTodo);
            return(CreatedAtRoute(
                       "GetTodo",
                       new { Id = newTodo.TodoId },
                       todo));
        }