示例#1
0
 /// <summary>
 /// Method that will be called on an entity immediately after the item is saved by context
 /// </summary>
 /// <param name="dbContext">The database context.</param>
 public virtual void PostSaveChanges(Rock.Data.DbContext dbContext)
 {
     if (HistoryItems?.Any() == true)
     {
         new SaveHistoryTransaction(HistoryItems).Enqueue();
     }
 }
示例#2
0
 /// <summary>
 /// Method that will be called on an entity immediately after the item is saved by context
 /// </summary>
 /// <param name="dbContext">The database context.</param>
 public virtual void PostSaveChanges(Rock.Data.DbContext dbContext)
 {
     if (HistoryItems?.Any() == true)
     {
         if (HistoryItems.Any())
         {
             Task.Run(async() =>
             {
                 // Wait 1 second to allow all post save actions to complete
                 await Task.Delay(1000);
                 try
                 {
                     using (var rockContext = new RockContext())
                     {
                         rockContext.BulkInsert(HistoryItems);
                     }
                 }
                 catch (SystemException ex)
                 {
                     ExceptionLogService.LogException(ex, null);
                 }
             });
         }
     }
 }
 /// <summary>
 /// Updates any Cache Objects that are associated with this entity
 /// </summary>
 /// <param name="entityState">State of the entity.</param>
 /// <param name="dbContext">The database context.</param>
 public void UpdateCache(EntityState entityState, Rock.Data.DbContext dbContext)
 {
     RegistrationTemplateFormFieldCache.UpdateCachedEntity(Id, entityState);
 }
示例#4
0
 /// <summary>
 /// Updates any Cache Objects that are associated with this entity
 /// </summary>
 /// <param name="entityState">State of the entity.</param>
 /// <param name="dbContext">The database context.</param>
 public void UpdateCache(EntityState entityState, Rock.Data.DbContext dbContext)
 {
     CampusCache.UpdateCachedEntity(this.Id, entityState);
 }
示例#5
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Service{T}"/> class.
 /// </summary>
 /// <param name="dbContext">The db context.</param>
 public Service(Rock.Data.DbContext dbContext)
 {
     _context        = dbContext;
     _objectSet      = _context.Set <T>();
     RelatedEntities = new RelatedEntityHelper <T>(this);
 }
示例#6
0
 /// <summary>
 /// QueryHintScope allows a developer to specify a SQL Server Query Hint to apply to all queries executed within the scope.
 /// NOTE: Make sure to use a USING { } pattern to prevent the query hint from getting added to other queries that fire off later
 /// </summary>
 /// <param name="context">The context.</param>
 /// <param name="hint">The hint.</param>
 public QueryHintScope(Rock.Data.DbContext context, string hint)
 {
     _hintInterceptor = new QueryHintDbCommandInterceptor(context, hint);
     DbInterception.Add(_hintInterceptor);
 }
 /// <summary>
 /// Updates any Cache Objects that are associated with this entity
 /// </summary>
 /// <param name="entityState">State of the entity.</param>
 /// <param name="dbContext">The database context.</param>
 public void UpdateCache(EntityState entityState, Rock.Data.DbContext dbContext)
 {
     WorkflowFormBuilderTemplateCache.UpdateCachedEntity(this.Id, entityState);
 }
示例#8
0
 /// <summary>
 /// Method that will be called on an entity immediately before the item is saved by context
 /// </summary>
 /// <param name="dbContext">The database context.</param>
 /// <param name="entry">The entry.</param>
 /// <param name="state">The state.</param>
 public virtual void PreSaveChanges(Rock.Data.DbContext dbContext, DbEntityEntry entry, EntityState state)
 {
     PreSaveChanges(dbContext, entry);
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="QueryHintDbCommandInterceptor"/> class.
 /// </summary>
 /// <param name="dbContext">The database context.</param>
 /// <param name="hintType">Type of the hint.</param>
 public QueryHintDbCommandInterceptor(Rock.Data.DbContext dbContext, QueryHintType hintType)
     : this(dbContext, hintType.ConvertToString().Replace("_", " "))
 {
     // intentionally blank
 }
 /// <summary>
 /// Updates any Cache Objects that are associated with this entity
 /// </summary>
 /// <param name="entityState">State of the entity.</param>
 /// <param name="dbContext">The database context.</param>
 public void UpdateCache(EntityState entityState, Rock.Data.DbContext dbContext)
 {
     InteractionChannelCache.UpdateCachedEntity(this.Id, entityState);
 }
示例#11
0
 /// <summary>
 /// Updates any Cache Objects that are associated with this entity
 /// </summary>
 /// <param name="entityState">State of the entity.</param>
 /// <param name="dbContext">The database context.</param>
 public void UpdateCache(EntityState entityState, Rock.Data.DbContext dbContext)
 {
     StreakTypeExclusionCache.UpdateCachedEntity(Id, entityState);
 }
示例#12
0
 /// <summary>
 /// Updates any Cache Objects that are associated with this entity
 /// </summary>
 /// <param name="entityState">State of the entity.</param>
 /// <param name="dbContext">The database context.</param>
 public void UpdateCache(EntityState entityState, Rock.Data.DbContext dbContext)
 {
     DefinedValueCache.UpdateCachedEntity(this.Id, entityState);
     DefinedTypeCache.FlushItem(this.DefinedTypeId);
 }
 /// <summary>
 /// Updates any Cache Objects that are associated with this entity
 /// </summary>
 /// <param name="entityState">State of the entity.</param>
 /// <param name="dbContext">The database context.</param>
 public void UpdateCache(EntityState entityState, Rock.Data.DbContext dbContext)
 {
     AchievementTypePrerequisiteCache.UpdateCachedEntity(Id, entityState);
 }
示例#14
0
 /// <summary>
 /// Updates any Cache Objects that are associated with this entity
 /// </summary>
 /// <param name="entityState">State of the entity.</param>
 /// <param name="dbContext">The database context.</param>
 public void UpdateCache(EntityState entityState, Rock.Data.DbContext dbContext)
 {
     RestActionCache.UpdateCachedEntity(this.ApiId, entityState);
 }
示例#15
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Service{T}"/> class.
 /// </summary>
 /// <param name="dbContext">The db context.</param>
 public Service(Rock.Data.DbContext dbContext)
 {
     _context   = dbContext;
     _objectSet = _context.Set <T>();
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="QueryHintDbCommandInterceptor"/> class.
 /// </summary>
 /// <param name="dbContext">The database context.</param>
 /// <param name="hint">The hint.</param>
 public QueryHintDbCommandInterceptor(Rock.Data.DbContext dbContext, string hint)
 {
     this.DbContext = dbContext;
     this.Hint      = hint;
 }
 /// <summary>
 /// Updates any Cache Objects that are associated with this entity.
 /// </summary>
 /// <param name="entityState">State of the entity.</param>
 /// <param name="dbContext">The database context.</param>
 public void UpdateCache(EntityState entityState, Rock.Data.DbContext dbContext)
 {
     AssessmentTypeCache.UpdateCachedEntity(Id, entityState);
 }
示例#18
0
 /// <summary>
 /// Method that will be called on an entity immediately before the item is saved by context
 /// </summary>
 /// <param name="dbContext"></param>
 /// <param name="state"></param>
 public virtual void PreSaveChanges(Rock.Data.DbContext dbContext, EntityState state)
 {
 }
示例#19
0
 /// <summary>
 /// Method that will be called on an entity immediately after the item is saved by context
 /// </summary>
 /// <param name="dbContext">The database context.</param>
 /// <param name="entry">The entry.</param>
 /// <param name="state">The state.</param>
 public virtual void PreSaveChanges(Rock.Data.DbContext dbContext, System.Data.Entity.Infrastructure.DbEntityEntry entry, System.Data.Entity.EntityState state)
 {
     PreSaveChanges(dbContext, entry);
 }
示例#20
0
 /// <summary>
 /// Method that will be called on an entity immediately after the item is saved by context
 /// </summary>
 /// <param name="dbContext">The database context.</param>
 public virtual void PostSaveChanges(Rock.Data.DbContext dbContext)
 {
 }
 /// <summary>
 /// Updates any Cache Objects that are associated with this entity
 /// </summary>
 /// <param name="entityState">State of the entity.</param>
 /// <param name="dbContext">The database context.</param>
 public void UpdateCache(EntityState entityState, Rock.Data.DbContext dbContext)
 {
     ContentChannelTypeCache.UpdateCachedEntity(Id, entityState);
 }
示例#22
0
 /// <summary>
 /// QueryHintScope allows a developer to specify a SQL Server Query Hint to apply to all queries executed within the scope.
 /// NOTE: Make sure to use a USING { } pattern to prevent the query hint from getting added to other queries that fire off later
 /// </summary>
 /// <example>
 /// using ( new QueryHintScope( rockContext, QueryHintType.RECOMPILE ) )
 /// {
 ///     gTransactions.SetLinqDataSource( qry.AsNoTracking() );
 /// }
 /// </example>
 /// <param name="context">The context.</param>
 /// <param name="hintType">The hint.</param>
 public QueryHintScope(Rock.Data.DbContext context, QueryHintType hintType)
     : this(context, hintType.ConvertToString().Replace("_", " "))
 {
     // intentionally blank
 }
示例#23
0
 /// <summary>
 /// Updates any Cache Objects that are associated with this entity
 /// </summary>
 /// <param name="entityState">State of the entity.</param>
 /// <param name="dbContext">The database context.</param>
 public void UpdateCache(EntityState entityState, Rock.Data.DbContext dbContext)
 {
     StepProgramCache.UpdateCachedEntity(Id, entityState);
 }
 /// <summary>
 /// Updates any Cache Objects that are associated with this entity
 /// </summary>
 /// <param name="entityState">State of the entity.</param>
 /// <param name="dbContext">The database context.</param>
 public void UpdateCache(EntityState entityState, Rock.Data.DbContext dbContext)
 {
     RestControllerCache.UpdateCachedEntity(this.Id, entityState);
 }
示例#25
0
 /// <summary>
 /// This method is called in the <see cref="PreSaveChanges(DbContext, DbEntityEntry, EntityState)" /> method. Use it to populate
 /// <see cref="HistoryItems" /> if needed. These history items are queued to be written into the database post save (so that they
 /// are only written if the save actually occurs).
 /// </summary>
 /// <param name="dbContext">The database context.</param>
 /// <param name="entry">The entry.</param>
 /// <param name="state">The state.</param>
 protected virtual void BuildHistoryItems(Rock.Data.DbContext dbContext, DbEntityEntry entry, EntityState state)
 {
 }
示例#26
0
 /// <summary>
 /// Updates any Cache Objects that are associated with this entity
 /// </summary>
 /// <param name="entityState">State of the entity.</param>
 /// <param name="dbContext">The database context.</param>
 public void UpdateCache(EntityState entityState, Rock.Data.DbContext dbContext)
 {
     WorkflowTypeCache.UpdateCachedEntity(this.Id, entityState);
 }
示例#27
0
 /// <summary>
 /// Updates any Cache Objects that are associated with this entity
 /// </summary>
 /// <param name="entityState">State of the entity.</param>
 /// <param name="dbContext">The database context.</param>
 public void UpdateCache(EntityState entityState, Rock.Data.DbContext dbContext)
 {
     NoteTypeCache.UpdateCachedEntity(this.Id, entityState);
     NoteTypeCache.RemoveEntityNoteTypes();
 }
示例#28
0
 /// <summary>
 /// Updates any Cache Objects that are associated with this entity
 /// </summary>
 /// <param name="entityState">State of the entity.</param>
 /// <param name="dbContext">The database context.</param>
 public void UpdateCache(EntityState entityState, Rock.Data.DbContext dbContext)
 {
     SmsActionCache.UpdateCachedEntity(Id, entityState);
 }
示例#29
0
 /// <summary>
 /// Updates any Cache Objects that are associated with this entity
 /// </summary>
 /// <param name="entityState">State of the entity.</param>
 /// <param name="dbContext">The database context.</param>
 public void UpdateCache(EntityState entityState, Rock.Data.DbContext dbContext)
 {
     InteractionComponentCache.UpdateCachedEntity(this.Id, this.SaveState);
 }