示例#1
0
        public async Task Delete(int userId, int id)
        {
            var message = await _repo.Get(id);

            if (message == null)
            {
                throw new RestException(HttpStatusCode.NotFound, new { Message = "Not found" });
            }
            var currentUserId = _userAccessor.getCurrentUserId();

            if (userId != currentUserId)
            {
                throw new RestException(HttpStatusCode.Forbidden);
            }

            if (message.RecipientId != currentUserId && message.SenderId != currentUserId)
            {
                throw new RestException(HttpStatusCode.Forbidden);
            }

            if (message.RecipientId == currentUserId)
            {
                message.RecipientDeleted = true;
            }

            if (message.SenderId == currentUserId)
            {
                message.SenderDeleted = true;
            }

            if (message.RecipientDeleted && message.SenderDeleted)
            {
                await _repo.Delete(message);
            }
        }
 public void Delete([FromUri] Guid id)
 {
     Log.Debug($"Удаление сообщения с Id = {id} из БД.");
     _messagesRepository.Delete(id);
     Log.Debug("Удаление сообщения завершено.");
 }