public function replace()
 {
     $this->checkNonce();
     if (empty($this->params['Title'])) {
         throw new Exception('Title parameter is required', 210);
     }
     if (empty($this->params['ElementSlug'])) {
         throw new Exception('ElementSlug parameter is required', 220);
     }
     $title = $this->params['Title'];
     $slug = SlugUtils::createSlug($title);
     $noderef = new NodeRef($this->ElementService->getBySlug($this->Request->getParameter('ElementSlug')), $slug);
     // create node
     $node = $noderef->generateNode();
     $this->NodeMapper->defaultsOnNode($node);
     $node->Title = $title;
     $node->Slug = $slug;
     $this->getErrors()->throwOnError();
     // edit existing record
     if ($this->RegulatedNodeService->refExists($noderef)) {
         $existing = $this->RegulatedNodeService->getByNodeRef($noderef);
         $existing->setNodePartials($node->getNodePartials());
         $existing->setMetas($node->getMetas());
         $existing->setOutTags($node->getOutTags());
         $node = $this->RegulatedNodeService->edit($node);
         //create new record
     } else {
         $node = $this->RegulatedNodeService->quickAdd($node);
     }
     $node = $this->RegulatedNodeService->getByNodeRef($node->getNodeRef(), new NodePartials());
     $this->bindToActionDatasource(array($node));
     return new View($this->successView());
 }