public Message DeleteMessage(int messageId, bool deleteForAll) { var message = _messageRepo.GetOne(messageId); if (message == null) { return(null); } if (deleteForAll) { var replies = _messageRepo.GetReplies(messageId).ToArray(); //_messageRepo.GetAll().OfType<ReplyMessage>().Where(m => m.ReplyTo.Id == message.Id).ToArray(); if (replies.Length != 0) { foreach (var replyMessage in replies) { replyMessage.ReplyTo = null; } _messageRepo.SaveRange(replies); } _messageRepo.Delete(message); } else { message.HideForAuthor = true; _messageRepo.Save(message); } if (deleteForAll) { return(null); } else { return(message); } }