Example #1
0
        /// <summary>
        /// Searches through the cache, if there is already an authorization with same rights. If that's the case
        /// update the given authorization with the permissions and remove the old one from the cache.
        /// </summary>
        protected internal virtual void updateAuthorizationBasedOnCacheEntries(AuthorizationEntity authorization, string userId, string groupId, Resource resource, string resourceId)
        {
            DbEntityManager             dbManager = Context.CommandContext.DbEntityManager;
            IList <AuthorizationEntity> list      = dbManager.getCachedEntitiesByType(typeof(AuthorizationEntity));

            foreach (AuthorizationEntity authEntity in list)
            {
                bool hasSameAuthRights = hasEntitySameAuthorizationRights(authEntity, userId, groupId, resource, resourceId);
                if (hasSameAuthRights)
                {
                    int previousPermissions = authEntity.getPermissions();
                    authorization.setPermissions(previousPermissions);
                    dbManager.DbEntityCache.remove(authEntity);
                    return;
                }
            }
        }
Example #2
0
        public virtual void deleteHistoricDetailsByTaskId(string taskId)
        {
            if (HistoryEnabled)
            {
                // delete entries in DB
                IList <HistoricDetail> historicDetails = findHistoricDetailsByTaskId(taskId);

                foreach (HistoricDetail historicDetail in historicDetails)
                {
                    ((HistoricDetailEventEntity)historicDetail).delete();
                }

                //delete entries in Cache
                IList <HistoricDetailEventEntity> cachedHistoricDetails = DbEntityManager.getCachedEntitiesByType(typeof(HistoricDetailEventEntity));
                foreach (HistoricDetailEventEntity historicDetail in cachedHistoricDetails)
                {
                    // make sure we only delete the right ones (as we cannot make a proper query in the cache)
                    if (taskId.Equals(historicDetail.TaskId))
                    {
                        historicDetail.delete();
                    }
                }
            }
        }
Example #3
0
        protected internal virtual void deleteHistoricVariableInstancesByProcessCaseInstanceId(string historicProcessInstanceId, string historicCaseInstanceId)
        {
            ensureOnlyOneNotNull("Only the process instance or case instance id should be set", historicProcessInstanceId, historicCaseInstanceId);
            if (HistoryEnabled)
            {
                // delete entries in DB
                IList <HistoricVariableInstance> historicVariableInstances;
                if (!string.ReferenceEquals(historicProcessInstanceId, null))
                {
                    historicVariableInstances = findHistoricVariableInstancesByProcessInstanceId(historicProcessInstanceId);
                }
                else
                {
                    historicVariableInstances = findHistoricVariableInstancesByCaseInstanceId(historicCaseInstanceId);
                }

                foreach (HistoricVariableInstance historicVariableInstance in historicVariableInstances)
                {
                    ((HistoricVariableInstanceEntity)historicVariableInstance).delete();
                }

                // delete entries in Cache
                IList <HistoricVariableInstanceEntity> cachedHistoricVariableInstances = DbEntityManager.getCachedEntitiesByType(typeof(HistoricVariableInstanceEntity));
                foreach (HistoricVariableInstanceEntity historicVariableInstance in cachedHistoricVariableInstances)
                {
                    // make sure we only delete the right ones (as we cannot make a proper query in the cache)
                    if ((!string.ReferenceEquals(historicProcessInstanceId, null) && historicProcessInstanceId.Equals(historicVariableInstance.ProcessInstanceId)) || (!string.ReferenceEquals(historicCaseInstanceId, null) && historicCaseInstanceId.Equals(historicVariableInstance.CaseInstanceId)))
                    {
                        historicVariableInstance.delete();
                    }
                }
            }
        }