Example #1
0
 protected function onObjectSaved(Model $object)
 {
     if ($object->isNewRecord()) {
         // Assign an auto number as a unique identifier.
         $this->autoNumberCount++;
         $object->UniqueIdentifier = $this->autoNumberCount;
     }
     parent::onObjectSaved($object);
 }
Example #2
0
 protected function beforeDelete()
 {
     parent::beforeDelete();
     foreach (Image::find(new Equals('GalleryID', $this->UniqueIdentifier)) as $image) {
         $image->delete();
     }
 }
Example #3
0
 /**
  * Override this to make changes just before the model is committed to the repository during a save operation
  */
 protected function beforeSave()
 {
     if ($this->isNewRecord()) {
         $this->PostedAt = new \DateTime();
     }
     parent::beforeSave();
 }
 protected function beforeSave()
 {
     if ($this->isNewRecord()) {
         $this->DateCreated = "now";
     }
     parent::beforeSave();
 }
Example #5
0
 protected function beforeSave()
 {
     parent::beforeSave();
     if ($this->isNewRecord()) {
         $this->DatePosted = new \DateTime();
     }
 }
 protected function beforeSave()
 {
     if ($this->isNewRecord()) {
         $this->DateCreated = new RhubarbDateTime("now");
     }
     parent::beforeSave();
 }
Example #7
0
 public static function find(Filter $filter = null)
 {
     $activeFilter = new Equals('Active', 1);
     if ($filter === null) {
         $filter = $activeFilter;
     } else {
         $filter = new AndGroup([$filter, $activeFilter]);
     }
     return parent::find($filter);
 }
 public static function setUpBeforeClass()
 {
     parent::setUpBeforeClass();
     Repository::setDefaultRepositoryClassName(MySql::class);
     self::SetDefaultConnectionSettings();
     Log::DisableLogging();
     $unitTestingSolutionSchema = new UnitTestingSolutionSchema();
     $unitTestingSolutionSchema->checkModelSchemas();
     // Make sure the test model objects have the any other repository disconnected.
     Model::deleteRepositories();
 }
 protected function setUp()
 {
     parent::setUp();
     Application::current()->registerModule(new CommunicationsModule());
     Application::current()->initialiseModules();
     Model::clearAllRepositories();
     CommunicationProcessor::setProviderClassName(EmailProvider::class, UnitTestingEmailProvider::class);
     Repository::setDefaultRepositoryClassName(Offline::class);
     Communication::clearObjectCache();
     CommunicationItem::clearObjectCache();
 }
Example #10
0
 public function testValidJsonTransform()
 {
     $company = new Company();
     $company->CompanyName = "Gcd Technologies";
     $company->CompanyData = $this->data;
     $company->save();
     $params = MySql::getPreviousParameters();
     $this->assertEquals($this->constraint, $params["CompanyData"]);
     Model::clearAllRepositories();
     $company = new Company($company->UniqueIdentifier);
     $this->assertEquals($this->data, $company->CompanyData);
 }
Example #11
0
 public static function checkRecords($oldVersion, $newVersion)
 {
     parent::checkRecords($oldVersion, $newVersion);
     if ($newVersion == 2) {
         foreach (Gallery::find() as $gallery) {
             $i = 0;
             foreach (Image::find(new Equals('GalleryID', $gallery->GalleryID)) as $image) {
                 $image->Order = $i++;
                 $image->save();
             }
         }
     }
 }
Example #12
0
 /**
  * Crafts and executes an SQL statement to insert the object into MySQL
  *
  * @param \Rhubarb\Stem\Models\Model $object
  */
 private function insertObject(Model $object)
 {
     $schema = $this->schema;
     $changes = $object->takeChangeSnapshot();
     $params = [];
     $columns = [];
     $sql = "INSERT INTO `{$schema->schemaName}`";
     $schemaColumns = $schema->getColumns();
     foreach ($changes as $columnName => $value) {
         $changeData = $changes;
         if (isset($schemaColumns[$columnName])) {
             $storageColumns = $schemaColumns[$columnName]->getStorageColumns();
             $transforms = $this->columnTransforms[$columnName];
             if ($transforms[1] !== null) {
                 $closure = $transforms[1];
                 $transformedData = $closure($changes);
                 if (is_array($transformedData)) {
                     $changeData = $transformedData;
                 } else {
                     $changeData[$columnName] = $transformedData;
                 }
             }
             foreach ($storageColumns as $storageColumnName => $storageColumn) {
                 $value = isset($changeData[$storageColumnName]) ? $changeData[$storageColumnName] : null;
                 $columns[] = "`" . $storageColumnName . "` = :" . $storageColumnName;
                 if ($value === null) {
                     $value = $storageColumn->defaultValue;
                 }
                 $params[$storageColumnName] = $value;
             }
         }
     }
     if (sizeof($columns) > 0) {
         $sql .= " SET " . implode(", ", $columns);
     } else {
         $sql .= " VALUES ()";
     }
     $id = self::executeInsertStatement($sql, $params);
     $object[$object->getUniqueIdentifierColumnName()] = $id;
 }
Example #13
0
 protected function getPublicPropertyList()
 {
     $properties = parent::getPublicPropertyList();
     $properties[] = "Surname";
     return $properties;
 }
Example #14
0
 public final function deleteObject(Model $object)
 {
     if ($object->isNewRecord()) {
         return;
     }
     $this->onObjectDeleted($object);
     $this->deleteObjectFromCache($object);
 }