public static void Initialize(TestContext context) { var rockContext = new RockContext(); // Add Followings for Ted Decker. var followingService = new FollowingService(rockContext); var tedDeckerGuid = TestGuids.TestPeople.TedDecker.AsGuid(); var benJonesGuid = TestGuids.TestPeople.BenJones.AsGuid(); var billMarbleGuid = TestGuids.TestPeople.BillMarble.AsGuid(); var personService = new PersonService(rockContext); var tedDeckerAliasId = personService.Get(tedDeckerGuid).PrimaryAliasId.GetValueOrDefault(); var personEntityTypeId = EntityTypeCache.GetId(SystemGuid.EntityType.PERSON).GetValueOrDefault(); followingService.GetOrAddFollowing(personEntityTypeId, personService.Get(benJonesGuid).Id, tedDeckerAliasId, null); followingService.GetOrAddFollowing(personEntityTypeId, personService.Get(billMarbleGuid).Id, tedDeckerAliasId, null); rockContext.SaveChanges(); // Add a Persisted Dataset containing some test people. var datasetLava = @" [ {%- person where:'Guid == `<benJonesGuid>` || Guid == `<billMarbleGuid>` || Guid == `<alishaMarbleGuid>`' iterator:'People' -%} {%- for item in People -%} { `Id`: {{ item.Id | ToJSON }}, `FirstName`: {{ item.NickName | ToJSON }}, `LastName`: {{ item.LastName | ToJSON }}, `FullName`: {{ item.FullName | ToJSON }}, } {%- unless forloop.last -%},{%- endunless -%} {%- endfor -%} {%- endperson -%} ] "; datasetLava = datasetLava.Replace("<benJonesGuid>", TestGuids.TestPeople.BenJones) .Replace("<billMarbleGuid>", TestGuids.TestPeople.BillMarble) .Replace("<alishaMarbleGuid>", TestGuids.TestPeople.AlishaMarble); // Create a Persisted Dataset. const string PersistedDataSetPeopleGuid = "99FF9EFA-D9E3-48DE-AD08-C67389FF688F"; datasetLava = datasetLava.Replace("`", @""""); var ps = new PersistedDatasetService(rockContext); var pds = ps.Get(PersistedDataSetPeopleGuid.AsGuid()); if (pds == null) { pds = new PersistedDataset(); pds.Guid = PersistedDataSetPeopleGuid.AsGuid(); ps.Add(pds); } pds.Name = "Persons"; pds.AccessKey = "persons"; pds.Description = "A persisted dataset created for testing purposes."; pds.BuildScriptType = PersistedDatasetScriptType.Lava; pds.BuildScript = datasetLava; pds.EnabledLavaCommands = "RockEntity"; pds.EntityTypeId = EntityTypeCache.Get(typeof(Person), createIfNotFound: false, rockContext).Id; pds.UpdateResultData(); rockContext.SaveChanges(); }
/// <summary> /// Handles the Click event of the btnSave control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param> protected void btnSave_Click(object sender, EventArgs e) { if (!Page.IsValid) { return; } var rockContext = new RockContext(); PersistedDatasetService persistedDatasetService = new PersistedDatasetService(rockContext); PersistedDataset persistedDataset; int persistedDatasetId = hfPersistedDatasetId.Value.AsInteger(); if (persistedDatasetId == 0) { persistedDataset = new PersistedDataset(); persistedDatasetService.Add(persistedDataset); } else { persistedDataset = persistedDatasetService.Get(persistedDatasetId); } var accessKey = tbAccessKey.Text; if (accessKey.IsNullOrWhiteSpace()) { nbAccessKeyWarning.Visible = true; nbAccessKeyWarning.Text = "Access Key cannot be blank"; return; } var accessKeyAlreadyExistsForDataSet = persistedDatasetService.Queryable().Where(a => a.AccessKey == accessKey && a.Id != persistedDataset.Id).AsNoTracking().FirstOrDefault(); if (accessKeyAlreadyExistsForDataSet != null) { nbAccessKeyWarning.Visible = true; nbAccessKeyWarning.Text = string.Format("Access Key must be unique. {0} is using '{1}' as the access key", accessKeyAlreadyExistsForDataSet.Name, accessKey); return; } persistedDataset.Name = tbName.Text; persistedDataset.IsActive = cbIsActive.Checked; persistedDataset.AccessKey = tbAccessKey.Text; persistedDataset.Description = tbDescription.Text; persistedDataset.BuildScript = ceBuildScript.Text; persistedDataset.EnabledLavaCommands = lcpEnabledLavacommands.SelectedLavaCommands.AsDelimited(","); var refreshIntervalHours = nbRefreshIntervalHours.Text.AsDoubleOrNull(); if (refreshIntervalHours.HasValue) { persistedDataset.RefreshIntervalMinutes = ( int )TimeSpan.FromHours(refreshIntervalHours.Value).TotalMinutes; } else { persistedDataset.RefreshIntervalMinutes = null; } var memoryCacheDurationHours = nbMemoryCacheDurationHours.Text.AsDoubleOrNull(); if (memoryCacheDurationHours.HasValue) { persistedDataset.MemoryCacheDurationMS = ( int )TimeSpan.FromHours(memoryCacheDurationHours.Value).TotalMilliseconds; } else { persistedDataset.MemoryCacheDurationMS = null; } persistedDataset.ExpireDateTime = dtpExpireDateTime.SelectedDate; persistedDataset.EntityTypeId = etpEntityType.SelectedEntityTypeId; persistedDataset.AllowManualRefresh = cbAllowManualRefresh.Checked; // just in case anything has changed, null out the LastRefreshDateTime and TimeToBuild to mark this as needing to be refreshed the next time the Persisted Dataset job runs persistedDataset.LastRefreshDateTime = null; persistedDataset.TimeToBuildMS = null; rockContext.SaveChanges(); NavigateToParentPage(); }