Beispiel #1
0
        public async Task <IActionResult> KickEditDocument([FromBody] OtherClientDocumentIdsDto model)
        {
            var currentUser = await _identityService.GetCurrentPersonIdentityAsync();

            if (currentUser == null)
            {
                return(BadRequest(new MessageDto()
                {
                    Success = false, Message = "Invalid user"
                }));
            }

            var document = await _documentService.GetDocumentById(model.DocumentId);

            if (document == null)
            {
                return(BadRequest(new MessageDto()
                {
                    Success = true, Message = "Invalid document"
                }));
            }

            if (document.OwnerId != currentUser.Id)
            {
                return(BadRequest(new MessageDto()
                {
                    Success = true, Message = "Invalid permission"
                }));
            }

            if (model.ClientId == currentUser.Id)
            {
                return(BadRequest(new MessageDto()
                {
                    Success = true, Message = "You can't kick yourself"
                }));
            }

            MessageDto result = await _documentService.RemoveClientFromEditDocument(model.ClientId, model.DocumentId);

            if (result.Success)
            {
                return(new OkObjectResult(result));
            }
            return(BadRequest(result));
        }