/**
  * Store a newly created resource in storage.
  *
  * @param Request $request
  * @return \Illuminate\Http\RedirectResponse
  * @throws RedirectException
  */
 public function store(Request $request)
 {
     $this->validate($request, ['reference' => 'required|regex:/^[A-Za-z0-9\\-]+$/', 'installation_id' => 'required', 'name' => 'required', 'email' => 'required|max:255', 'address' => 'required']);
     try {
         $this->validateEmailAddressInput($request);
         $toCreate = $request->all();
         $toCreate['active'] = $request->has('active') ? 1 : 0;
         Location::create($toCreate);
     } catch (\Exception $e) {
         $this->logError('Could not successfully create new Location' . $e->getMessage());
         throw RedirectException::make('/locations/')->setError($e->getMessage());
     }
     return $this->redirectWithSuccessMessage('locations', 'New location has been successfully created');
 }