/**
  * Display a administrator dashboard.
  *
  * @return \Illuminate\Http\Response
  */
 public function index()
 {
     $activities = Activity::with('contributor')->paginate(8);
     $statistics = ['ARTICLES' => Article::count(), 'MEMBERS' => Contributor::count(), 'CATEGORIES' => Subcategory::count(), 'MESSAGES' => Message::count(), 'FEEDBACK' => Feedback::count(), 'VISITORS' => (int) Visitor::sum('unique')];
     $visitors = Visitor::take(10)->get();
     return view('admin.dashboard.index', compact('activities', 'statistics', 'visitors'));
 }
 /**
  * Remove the specified message from database.
  *
  * @param Request $request
  * @param  int $id
  * @return \Illuminate\Http\Response
  */
 public function destroy(Request $request, $id)
 {
     $message = Conversation::whereMessageId($id);
     if (count($message->get()) == 0) {
         abort(404);
     }
     $result = DB::transaction(function () use($request, $message, $id) {
         try {
             if ($request->input('sender') == $request->input('contributor_id')) {
                 $message->update(['is_available_sender' => 0]);
             } else {
                 $message->update(['is_available_receiver' => 0]);
             }
             Conversation::whereIsAvailableSender(0)->whereIsAvailableReceiver(0)->delete();
             $message = Message::find($id);
             $conversations = $message->conversations()->count();
             if (!$conversations) {
                 $message->delete();
             }
             return response()->json(['request_id' => uniqid(), 'status' => 'success', 'message' => Lang::get('alert.message.delete', ['receiver' => $request->input('contributor')]), 'timestamp' => Carbon::now()]);
         } catch (\Exception $e) {
             return response()->json(['request_id' => uniqid(), 'status' => 'failure', 'message' => Lang::get('alert.error.generic'), 'timestamp' => Carbon::now()], 500);
         }
     });
     return $result;
 }
 /**
  * Remove the specified message from database.
  *
  * @param Request $request
  * @param  int $id
  * @return \Illuminate\Http\Response
  */
 public function destroy(Request $request, $id)
 {
     $message = Conversation::whereMessageId($id);
     if (count($message->get()) == 0) {
         abort(404);
     }
     $result = DB::transaction(function () use($request, $message, $id) {
         try {
             if ($request->input('sender') == Auth::user()->id) {
                 $message->update(['is_available_sender' => 0]);
             } else {
                 $message->update(['is_available_receiver' => 0]);
             }
             Conversation::whereIsAvailableSender(0)->whereIsAvailableReceiver(0)->delete();
             $message = Message::find($id);
             $conversations = $message->conversations()->count();
             if (!$conversations) {
                 $message->delete();
             }
             return redirect(route('account.message.list'))->with(['status' => 'danger', 'message' => Lang::get('alert.message.delete', ['receiver' => $request->input('contributor')])]);
         } catch (\Exception $e) {
             return redirect()->back()->withErrors(['error' => Lang::get('alert.error.transaction')])->withInput();
         }
     });
     return $result;
 }