public async Task <IActionResult> SendAdminDelete(int id, string reason)
        {
            // Deletes thread and saves changes
            await _repository.AdminDeleteThreadAsync(id, reason);

            await _repository.SaveChangesAsync();

            // Creates model and returns view
            MessageViewModel model = new MessageViewModel()
            {
                Title        = "Thread deleted",
                MessageTitle = "Thread deleted successfully"
            };

            return(View("Message", model));
        }
        public async Task <IActionResult> AdminDeleteThread(int id, AdminDeleteRequest request)
        {
            // Returns error if reason is null
            if (request.Reason == null)
            {
                return(BadRequest("Reason cannot be null"));
            }

            // Deletes thread and returns 403 if unauthorized
            Result result = await _repository.AdminDeleteThreadAsync(id, request.Reason);

            if (result.Failure)
            {
                return(StatusCode(result.Code, result.Error));
            }

            // Saves changes and returns
            await _repository.SaveChangesAsync();

            return(Ok());
        }