/**
  * @param Request $req
  * @param Application $app
  *
  * @return bool
  */
 public function addAction(Request $req, Application $app)
 {
     $error = '';
     $ok = false;
     if ($app['odbc_aster'] !== false) {
         if (!is_null($req->request->get('action'))) {
             // get parameters
             $userid = $app['security.token_storage']->getToken()->getUser()->getId();
             $city = $req->request->get('city', '');
             $state = $req->request->get('state', '');
             $country = $req->request->get('country', '');
             $zip = $req->request->get('zip', '');
             $startt = $req->request->get('startt', '');
             $title = $req->request->get('title', '');
             $descr = $req->request->get('description', '');
             $hashtag = $req->request->get('hashtag', '');
             //checks
             if ($startt != '') {
                 /**@var $eventProvider EventProvider */
                 $eventProvider = new EventProvider($app['odbc_aster']);
                 $eventid = uniqid(rand() . '_');
                 $event = new Event($eventid, $userid, $startt, $city, $state, $zip, $country, $title, $descr);
                 if ($eventProvider->addEvent($event)) {
                     $ok = true;
                 } else {
                     $error = 'The event is already present. Please change some values';
                 }
                 if ($hashtag != '') {
                     /**@var $tweetProvider TweetProvider */
                     $tweetProvider = new TweetProvider($app['odbc_aster']);
                     // get tweets with an API call
                     $twitterManager = new TwitterManager($app['twitter.config']);
                     try {
                         $tweets = $twitterManager->search($hashtag);
                         if (count($tweets) != 0) {
                             $count = 0;
                             // for each tweet
                             foreach ($tweets as $tweet) {
                                 if ($count == 10) {
                                     break;
                                 }
                                 $id = $tweet["ID"];
                                 $text = $tweet["TEXT"];
                                 $date = $tweet["CREATED_AT"];
                                 $userName = $tweet["USER_NAME"];
                                 $userImage = $tweet["IMAGE_PROFILE"];
                                 $url = $tweet["URL"];
                                 $rc = $tweet["RTWEET_COUNT"];
                                 $lang = $tweet["LANG"];
                                 $tweet = new Tweet($id, $eventid, $text, $userName, $userImage, $url, $date, $lang, $rc);
                                 if (!$tweetProvider->addTweet($tweet)) {
                                     $error = 'Cannot add the tweet. Continue.';
                                 }
                                 ++$count;
                             }
                         } else {
                             $error = 'No tweet found for the given hashtag: ' . $hashtag;
                         }
                     } catch (\Exception $e) {
                         $error = 'Cannot retrieve tweets for this event: no connection available.';
                     }
                 }
             } else {
                 $error = 'Invalid start time.';
             }
         }
     } else {
         $error = 'Could not connect to the database! Please retry soon.';
     }
     // forward to 'myevents'
     $subRequest = Request::create($app['url_generator']->generate('myevents'), 'GET', array('add_was_ok' => $ok, 'error' => $error));
     return $app->handle($subRequest, HttpKernelInterface::SUB_REQUEST);
 }