Beispiel #1
0
        public async Task DeleteMessage(DeleteMessageDto deleteMessageDto, string userId)
        {
            if (deleteMessageDto.DeleteForAll == false && deleteMessageDto.DeleteForSender == false)
            {
                throw new ArgumentException("You need to chose at least one option");
            }
            var message = await _unitOfWork.MessageRepository.GetByIdAsync(deleteMessageDto.MessageID);

            if (message == null)
            {
                throw new Exception("Message doesn't exist");
            }

            if (message.SenderId != userId || message.DeletedForAll || message.DeletedForSender)
            {
                throw new Exception("You can't delete this message");
            }

            using (var transaction = await _unitOfWork.BeginTransactionAsync())
            {
                message.DeletedForAll    = deleteMessageDto.DeleteForAll;
                message.DeletedForSender = deleteMessageDto.DeleteForSender;
                await _unitOfWork.CommitAsync();

                await transaction.CommitAsync();
            }
        }
Beispiel #2
0
        public async Task <IActionResult> RemoveMessages()
        {
            var deletedDto = new DeleteMessageDto();
            var messages   = await _messageService.GetAllMessages();

            deletedDto.Messages = DeleteMessageDto.MessageListToDto(messages);
            return(View(deletedDto));
        }
Beispiel #3
0
        public async Task <ActionResult> DeleteMessage(DeleteMessageDto deleteMessageDto)
        {
            try
            {
                var userId = this.User.Claims.First(c => c.Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier").Value;
                await _messagesService.DeleteMessage(deleteMessageDto, userId);

                return(Ok(MessageControllerConstants.YouMessageIsDeleted));
            }
            catch (Exception ex)
            {
                _logger.Error(ex);
                return(StatusCode(StatusCodes.Status500InternalServerError, ex.Message));
            }
        }