Esempio n. 1
0
        public void RegisterKPU(string kpuId, string connectionString, string queueString)
        {
            logger.Debug($"In RegisterKPU Parameters ConnectionString:{connectionString}, QueueString:{queueString}");

            var connector = new Connector();

            connector.ConnectAsync(connectionString, User, Password).Wait();

            KpuRegistrationRequest kpuRegistration = new KpuRegistrationRequest();

            kpuRegistration.KpuId = kpuId;// ToHActor.KPU_ID;

            KpuPermissionRequest[] request = new KpuPermissionRequest[2];
            request[0] = new KpuPermissionRequest()
            {
                PermissionIdentifier = "view"
            };
            request[1] = new KpuPermissionRequest()
            {
                PermissionIdentifier = "subscribe"
            };
            kpuRegistration.PermissionRequests = request;
            kpuRegistration.MenuXmlString      = GetMenuString();

            string packedStr = SerializationHelper.Pack(kpuRegistration);

            connector.SendAsync(packedStr, queueString, BrokerCommands.KPU_REGISTRATION, null).Wait();
        }
Esempio n. 2
0
        private async Task <bool> ProcessKpuPermissionRequest(string kpuId, KpuPermissionRequest request, KpuPermissionRequest parentPermissionRequest = null)
        {
            logger.Trace(LM($"kputId={kpuId},requestIdentifier={request.PermissionIdentifier}, parentRequestIdentifier={parentPermissionRequest?.PermissionIdentifier ?? "null"}"));
            var permissionId             = kpuId + '.' + request.PermissionIdentifier;
            AccessControlResponse result = null;

            if (parentPermissionRequest == null)
            {
                result = await RegisterPermission(permissionId, null);
            }
            else
            {
                var parentPermissionId = kpuId + '.' + parentPermissionRequest.PermissionIdentifier;
                result = await RegisterPermission(permissionId, parentPermissionId);
            }
            if (request.ChildPermissionRequests != null && request.ChildPermissionRequests.Length > 0)
            {
                foreach (var childRequest in request.ChildPermissionRequests)
                {
                    await ProcessKpuPermissionRequest(kpuId, childRequest, request);
                }
            }
            return(result.Result);
        }