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("Удаление сообщения завершено."); }