func (t *Task) Persist() (bool, error) { sessionCopy := db.GetDatastore().Copy() defer sessionCopy.Close() coll := sessionCopy.DB(conf.SystemConfig.DBConfig.Database).C(models.COLL_NAME_TASKS) // Populate the task details. The parent ID should always be updated by the parent task later. var appTask models.AppTask appTask.Id = t.ID appTask.Name = t.Name appTask.Started = t.Started appTask.Completed = t.Completed appTask.StatusList = t.StatusList appTask.Tag = t.Tag if err := coll.Insert(appTask); err != nil { //logger.Get().Error("Error persisting task: %v. error: %v", t.ID, err) return false, err } return true, nil }