public IActionResult Input()
        {
            if (_context.User.Count() == 0)
            {
                var collab = new User
                {
                    LastName   = "Collab",
                    FirstName  = "User",
                    MailAdress = "*****@*****.**",
                    Password   = "******"
                };
                _context.User.Add(collab);
                var admin = new User
                {
                    LastName   = "Admin",
                    FirstName  = "Sys",
                    MailAdress = "*****@*****.**",
                    Password   = "******"
                };
                _context.User.Add(admin);
                var list = new TodoList()
                {
                    Name    = "List42",
                    OwnerID = admin.Id
                };
                _context.TodoList.Add(list);

                list.TodoItems.Add(new TodoItem()
                {
                    Name   = "Item1",
                    ListID = list.Id
                });
                var todoListuser = new TodoListUser()
                {
                    CollaboratorID = collab.Id,
                    TodoListID     = list.Id
                };
                list.Collaborators.Add(todoListuser);
                _context.TodoList.Add(list);
                _context.SaveChanges();
                var ret = new List <Object>()
                {
                    admin, collab
                };
                return(new ObjectResult(ret));
            }
            return(BadRequest());
        }
        public IActionResult Create([FromBody] CollabRequest collabRequest)
        {
            if (collabRequest == null)
            {
                return(BadRequest());
            }
            var list = _context.TodoList.First(l => l.Id.Equals(collabRequest.TodoListID));

            if (list == null)
            {
                return(NotFound());
            }
            var fUser = _context.User.First(u => u.MailAdress.Equals(collabRequest.MailAdress));

            if (fUser == null)
            {
                return(NotFound());
            }
            if (fUser.Id.Equals(list.OwnerID))
            {
                return(BadRequest());
            }
            var currentUser = HttpContext.User;

            if (currentUser.HasClaim(c => c.Type == JwtRegisteredClaimNames.Jti))
            {
                string guidstring = currentUser.Claims.FirstOrDefault(c => c.Type == JwtRegisteredClaimNames.Jti).Value;
                if (list.OwnerID.ToString().Equals(guidstring))
                {
                    try{
                        var Col = new TodoListUser()
                        {
                            TodoListID = collabRequest.TodoListID, CollaboratorID = fUser.Id
                        };
                        list.Collaborators.Add(Col);
                        _context.SaveChanges();
                        return(new NoContentResult());
                    }catch (InvalidOperationException ex) {
                        return(BadRequest(ex.Message));
                    }
                }
            }

            return(BadRequest());
        }
        public IActionResult Delete([FromBody] TodoListUser user)
        {
            if (user == null)
            {
                return(BadRequest());
            }
            var list = _context.TodoList.First(l => l.Id.Equals(user.TodoListID));

            if (list == null)
            {
                return(NotFound());
            }
            var fUser = _context.User.First(u => u.Id.Equals(user.CollaboratorID));

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


            var collaberator = _context.TodoListUser.Find(user.CollaboratorID, user.TodoListID);

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

            var currentUser = HttpContext.User;

            if (currentUser.HasClaim(c => c.Type == JwtRegisteredClaimNames.Jti))
            {
                string guidstring = currentUser.Claims.FirstOrDefault(c => c.Type == JwtRegisteredClaimNames.Jti).Value;
                if (list.OwnerID.ToString().Equals(guidstring) || user.CollaboratorID.ToString().Equals(guidstring))
                {
                    list.Collaborators.Remove(collaberator);
                    _context.SaveChanges();
                    return(new NoContentResult());
                }
            }

            return(BadRequest());
        }
Ejemplo n.º 4
0
 public Task <bool> UpdateAsync(TodoListUser entity)
 {
     throw new NotImplementedException();
 }
Ejemplo n.º 5
0
 public async Task <bool> DeleteAsync(TodoListUser entity)
 {
     db.Remove(entity);
     return(await RepositoryHelper.ValidateCorectnessAsync(db));
 }