public function run()
 {
     $Attendees = array();
     $lexer = new Lexer(new LexerConfig());
     $interpreter = new Interpreter();
     $interpreter->addObserver(function (array $row) use($Attendees) {
         $ItemOne = \Todo\Attendee::create(array('company' => $row[0], 'lastname' => $row[1], 'firstname' => $row[2], 'phone' => $row[3], 'email' => $row[4], 'paidinfull' => $row[5], 'balance' => $row[6], 'notes' => $row[7], 'seat_id' => $row[8]));
         $this->command->info("Added " . $row[1] . "as an attendee");
     });
     $fileName = $this->getDir() . '/Attendees.csv';
     $lexer->parse($fileName, $interpreter);
 }
 public function postUpload($unique)
 {
     //disable php timeout and db query log
     DB::disableQueryLog();
     set_time_limit(0);
     $compare = Compare::where('unique', $unique)->first();
     if (!$compare || !Session::get('owner')) {
         return Redirect::to('compare/notfound');
     }
     $file = Input::file('csv');
     $data_set = array();
     $config = new LexerConfig();
     $config->setDelimiter("\t");
     $lexer = new Lexer($config);
     //setup the interpreter
     $interpreter = new Interpreter();
     $interpreter->unstrict();
     $interpreter->addObserver(function (array $row) use(&$data_set) {
         $data_set[] = $row[0];
     });
     //parse it!
     $lexer->parse($file, $interpreter);
     //loop through the data
     foreach ($data_set as $data_item) {
         $data = new Data();
         $data->compare_id = $unique;
         $data->owner_id = Session::get('owner');
         $data->hash = md5($data_item);
         $data->save();
     }
     return Redirect::back();
 }