/// <summary>
        /// Push a new entity to update loop
        /// </summary>
        static public bool Push(IUpdateEntity entity, int priority)
        {
            Assert.IsNotNull(entity, "(UpdateManager) Push(entity = null)");

            LazyInit();

            int idx = IndexOf(entity);

            if (idx == -1)
            {
                // resize before overflow!
                if (instance.frameListenersCount == instance.frameListeners.Length)
                {
                    Array.Resize(ref instance.frameListeners, instance.frameListenersCount + 10);
                }

                instance.frameListeners[instance.frameListenersCount].entity   = entity;
                instance.frameListeners[instance.frameListenersCount].priority = priority;

                ++instance.frameListenersCount;

                Array.Sort(instance.frameListeners, delegate(ItemPrio a, ItemPrio b) {
                    return(b.priority - a.priority);
                });

                return(true);
            }

            return(false);
        }
Beispiel #2
0
        public bool Push(IUpdateEntity entity, int priority)
        {
            LazyInit();

            int idx = IndexOf(entity);

            if (idx == -1)
            {
                // resize before overflow!
                if (used == frameListeners.Length)
                {
                    Array.Resize(ref frameListeners, used + 10);
                }

                frameListeners[used].entity   = entity;
                frameListeners[used].priority = priority;

                ++used;

                Array.Sort(frameListeners, delegate(ItemPrio a, ItemPrio b) {
                    return(b.priority - a.priority);
                });

                return(true);
            }

            return(false);
        }
Beispiel #3
0
        public static async Task <IActionResult> UpdateRecord(
            [HttpTrigger(AuthorizationLevel.Function, "patch", Route = "record")] HttpRequest req, ILogger logger)
        {
            var par = req.GetQueryParameterDictionary();

            if (!par.TryGetValue("recordid", out var recordid))
            {
                errorcode = "Wrong parameter.";
                logger.LogError(errorcode);
                return(new BadRequestObjectResult(errorcode));
            }

            _updateEntity = new UpdateEntity();

            string requestBody = await new StreamReader(req.Body).ReadToEndAsync();

            if (string.IsNullOrEmpty(requestBody))
            {
                errorcode = "no body";
                logger.LogError(errorcode);
                return(new BadRequestObjectResult(errorcode));
            }

            if (_updateEntity.UpdateTransaction(recordid, requestBody, ref errorcode))
            {
                logger.LogError(errorcode);
                return(new BadRequestObjectResult(errorcode));
            }

            logger.LogInformation("Request succeed");

            return(new OkObjectResult("Record was updated."));
        }
 /// <summary>
 /// Initializes a new instance of UpdateEntityAuthorizationDecorator.
 /// </summary>
 /// <param name="next">The decorated instance for which authorization is being performed.</param>
 /// <param name="securityRepository">Provides access to the repository where the claims/actions are stored.</param>
 /// <param name="authorizationContextProvider">Provides access to the authorization context, such as the resource and action.</param>
 /// <param name="authorizationFilteringProvider"></param>
 /// <param name="authorizationFilterDefinitionProvider"></param>
 /// <param name="explicitObjectValidators"></param>
 /// <param name="authorizationBasisMetadataSelector"></param>
 /// <param name="sessionFactory"></param>
 /// <param name="apiKeyContextProvider"></param>
 /// <param name="viewBasedSingleItemAuthorizationQuerySupport"></param>
 public UpdateEntityAuthorizationDecorator(
     IUpdateEntity <T> next,
     ISecurityRepository securityRepository,
     IAuthorizationContextProvider authorizationContextProvider,
     IAuthorizationFilteringProvider authorizationFilteringProvider,
     IAuthorizationFilterDefinitionProvider authorizationFilterDefinitionProvider,
     IExplicitObjectValidator[] explicitObjectValidators,
     IAuthorizationBasisMetadataSelector authorizationBasisMetadataSelector,
     ISessionFactory sessionFactory,
     IApiKeyContextProvider apiKeyContextProvider,
     IViewBasedSingleItemAuthorizationQuerySupport viewBasedSingleItemAuthorizationQuerySupport)
     : base(
         authorizationContextProvider,
         authorizationFilteringProvider,
         authorizationFilterDefinitionProvider,
         explicitObjectValidators,
         authorizationBasisMetadataSelector,
         securityRepository,
         sessionFactory,
         apiKeyContextProvider,
         viewBasedSingleItemAuthorizationQuerySupport)
 {
     _next = next;
     _securityRepository = securityRepository;
     _viewBasedSingleItemAuthorizationQuerySupport = viewBasedSingleItemAuthorizationQuerySupport;
 }
Beispiel #5
0
 /// <summary>
 /// Initializes a new instance of UpdateEntityAuthorizationDecorator.
 /// </summary>
 /// <param name="next">The decorated instance for which authorization is being performed.</param>
 /// <param name="securityRepository">Provides access to the repository where the claims/actions are stored.</param>
 /// <param name="authorizationContextProvider">Provides access to the authorization context, such as the resource and action.</param>
 /// <param name="authorizationProvider">The component capable of authorizing the request, given necessary context.</param>
 public UpdateEntityAuthorizationDecorator(
     IUpdateEntity <T> next,
     ISecurityRepository securityRepository,
     IAuthorizationContextProvider authorizationContextProvider,
     IEdFiAuthorizationProvider authorizationProvider)
     : base(authorizationContextProvider, authorizationProvider)
 {
     _next = next;
     _securityRepository = securityRepository;
 }
        /// <summary>
        /// Index of given entity in the frameListeners
        /// </summary>
        /// </returns>>= 0 if found (index). -1 if not found</returns>
        static public int IndexOf(IUpdateEntity entity)
        {
            LazyInit();

            for (int i = 0; i < instance.frameListenersCount; ++i)
            {
                if (instance.frameListeners[i].entity == entity)
                {
                    return(i);
                }
            }
            return(-1);
        }
Beispiel #7
0
 public UpsertEntity(
     ISessionFactory sessionFactory,
     IGetEntityById <TEntity> getEntityById,
     IGetEntityByKey <TEntity> getEntityByKey,
     ICreateEntity <TEntity> createEntity,
     IUpdateEntity <TEntity> updateEntity)
     : base(sessionFactory)
 {
     _getEntityById  = getEntityById;
     _getEntityByKey = getEntityByKey;
     _createEntity   = createEntity;
     _updateEntity   = updateEntity;
 }
Beispiel #8
0
        public int IndexOf(IUpdateEntity entity)
        {
            LazyInit();

            for (int i = 0; i < used; ++i)
            {
                if (frameListeners[i].entity == entity)
                {
                    return(i);
                }
            }
            return(-1);
        }
Beispiel #9
0
        protected AssociationClassRepositoryBase(IProvideAssociationClassItemByIds <TEntity, FirstId, SecondId> entityProvider, ICreateEntity <TEntity> entityCreator,
                                                 IUpdateEntity <TEntity> entityUpdater, IDeleteAssociationClassEntity <TEntity, FirstId, SecondId> entityDestroyer)
        {
            if (entityProvider == null || entityCreator == null || entityUpdater == null || entityDestroyer == null)
            {
                throw new ArgumentNullException();
            }
            Contract.EndContractBlock();

            _entityProvider  = entityProvider;
            _entityCreator   = entityCreator;
            _entityUpdater   = entityUpdater;
            _entityDestroyer = entityDestroyer;
        }
Beispiel #10
0
        public UpdateEntityWithValidationService(IUpdateEntity <TEntity> repository, IUnitOfWork unitOfWork, IValidation <TEntity> validation = null,
                                                 ILogger <UpdateEntityWithValidationService <TEntity> > logger = null)
            : base(validation)
        {
            if (repository == null || unitOfWork == null)
            {
                throw new ArgumentNullException();
            }
            Contract.EndContractBlock();

            _repository = repository;
            _unitOfWork = unitOfWork;
            _logger     = logger;
        }
Beispiel #11
0
        protected RepositoryBase(IProvideItemById <TEntity, TId> entityByIdProvider, IProvideItemByIdWithIncludes <TEntity, TId> entityWithIncludesByIdProvider,
                                 ICreateEntity <TEntity> entityCreator, IUpdateEntity <TEntity> entityUpdater, IDeleteEntity <TEntity, TId> entityDestroyer)
        {
            if (entityByIdProvider == null || entityWithIncludesByIdProvider == null || entityCreator == null ||
                entityUpdater == null || entityDestroyer == null)
            {
                throw new ArgumentNullException();
            }
            Contract.EndContractBlock();

            _entityByIdProvider             = entityByIdProvider;
            _entityWithIncludesByIdProvider = entityWithIncludesByIdProvider;
            _entityCreator   = entityCreator;
            _entityUpdater   = entityUpdater;
            _entityDestroyer = entityDestroyer;
        }
        /// <summary>
        /// Remove given entity from frameListeners
        /// </summary>
        /// </returns>If it was removed</returns>
        static public bool Remove(IUpdateEntity entity)
        {
            if (LazyInit())
            {
                int idx = IndexOf(entity);
                if (idx != -1)
                {
                    // frameListeners.Splice(idx, 1);
                    for (int i = idx; i < instance.frameListenersCount - 1; ++i)
                    {
                        instance.frameListeners[i] = instance.frameListeners[i + 1];
                    }
                    --instance.frameListenersCount;
                    return(true);
                }
            }

            return(false);
        }
Beispiel #13
0
        public bool Remove(IUpdateEntity entity)
        {
            LazyInit();

            int idx = IndexOf(entity);

            if (idx != -1)
            {
                // frameListeners.Splice(idx, 1);
                for (int i = idx; i < used; ++i)
                {
                    frameListeners[i] = frameListeners[i + 1];
                }
                --used;
                return(true);
            }

            return(false);
        }
Beispiel #14
0
        public static async Task <IActionResult> ChangeUserType([HttpTrigger(AuthorizationLevel.Function, "patch", Route = "user/changetype")] HttpRequest req, ILogger logger)
        {
            var par = req.GetQueryParameterDictionary();

            if (!par.TryGetValue("userid", out var userid) || !par.TryGetValue("type", out var type))
            {
                errorcode = "Type is not valid.";
                logger.LogError(errorcode);
                return(new BadRequestObjectResult(errorcode));
            }

            _updateEntity = new UpdateEntity();
            if (!_updateEntity.UpdateUserType(userid, type, ref errorcode))
            {
                logger.LogError(errorcode);
                return(new BadRequestObjectResult(errorcode));
            }

            response = "User type was updated.";
            logger.LogInformation(response);
            return(new OkObjectResult(response));
        }