Example #1
0
        public async Task <ActionResult> RemoveCollaborator(string id, string userId)
        {
            var item = await _itemDbCommand.FindAsync(id);

            if (item == null)
            {
                return(HttpNotFound());
            }
            if (!LogonUser.IsEntitledToEditItemCollaborators(item))
            {
                return(new HttpStatusCodeResult(HttpStatusCode.Unauthorized));
            }

            var deleteCollaborator = item.Collaborators.FirstOrDefault(x => x.Id == userId);

            if (deleteCollaborator == null)
            {
                throw new InvalidOperationException();
            }

            await _itemDbCommand.RemoveCollaboratorAsync(item, deleteCollaborator);

            return(new HttpStatusCodeResult(HttpStatusCode.OK));
        }