public function dispatch()
 {
     try {
         $this->setUriParsedResult($this->getRouter()->processRequestUri($this->getRequestUri(), $this->getRequestMethod(), $this->getUserRole(), $this->getPostData()));
         $view = View::getInstance();
         $view->setAreaViewsDirectory(DirectoryHelper::getViewsDirectory($this->getUriParsedResult()->getAreaName()));
         $view->setSharedViewsDirectory(DirectoryHelper::getSharedViewsDirectory());
         $this->initController($this->getUriParsedResult(), $view);
         call_user_func_array([$this->getController(), $this->getUriParsedResult()->getActionName()], $this->getUriParsedResult()->getRequestParams());
     } catch (\Exception $exception) {
         echo $exception->getMessage();
     }
 }