Exemplo n.º 1
0
        /// <summary>
        /// Request the information from Nucleus and show it in your .NET application
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>

        #region Tab 1
        private void btnListTemplates_Click(object sender, RoutedEventArgs e)
        {
            GetTemplatesRequest request   = new GetTemplatesRequest().GetThumbnails(true);
            List <Template>     templates = XdServices.Invoke(request);

            listTemplates.ItemsSource = templates;
        }
Exemplo n.º 2
0
        /// <summary>
        /// 对服务请求进行处理,根据路由信息调用合适的服务实现
        /// </summary>
        /// <param name="context">服务上下文,每次服务调用共享一个实例</param>
        /// <returns></returns>
        public override async Task <ServiceProcessResult> ProcessAsync(ServiceContext context)
        {
            logger.LogInformation($"Service request process beginning. ServiceId={context.Route.ServiceId}, ActionId={context.Route.ActionId}");

            if (!context.Route.Enabled)
            {
                logger.LogError($"Route is disabled. ServiceId={context.Route.ServiceId}, ActionId={context.Route.ActionId}");
                return(ServiceProcessorUtils.CreateServiceExceptionResult(ServiceExceptionKeys.SERVICE_DISABLED_ERROR, ProtocolStackFactory));
            }

            if (Serializer == null || ServiceInvoker == null)
            {
                logger.LogError($"Service has configuration error. ServiceId={context.Route.ServiceId}, ActionId={context.Route.ActionId}");
                return(ServiceProcessorUtils.CreateServiceExceptionResult(ServiceExceptionKeys.SERVER_CONFIG_ERROR, ProtocolStackFactory));
            }

            var result = new ServiceProcessResult()
            {
                ServiceResponse = ProtocolStackFactory.CreateServiceResponse()
            };

            try
            {
                result.ServiceResponse.ReturnValue = await ServiceInvoker.Invoke(Serializer, context.Route, context.ActionParamList);
            }
            catch (Exception ex)
            {
                logger.LogError(ex, $"ServiceInvoker.Invoke has error, ServiceId={context.Route.ServiceId}, ActionId={context.Route.ActionId}, ExceptionMessage={ex.Message}");
                return(ServiceProcessorUtils.CreateServiceExceptionResult(ServiceExceptionKeys.SERVICE_INVOKE_ERROR, ProtocolStackFactory));
            }

            logger.LogInformation($"Service request process finished. ServiceId={context.Route.ServiceId}, ActionId={context.Route.ActionId}");

            return(result);
        }
Exemplo n.º 3
0
 public void Configuration(IAppBuilder app)
 {
     app.Run(context =>
     {
         return(ServiceInvoker.Invoke(this.kernel, new OwinRadiumContext(context)));
     });
 }
Exemplo n.º 4
0
        static void Main(string[] args)
        {
            string fromAccountId = "123456789";
            string tooAccountId  = "987654321";
            double amount        = 1000;

            ServiceInvoker.Invoke <IBankingService>(proxy => proxy.Transfer(fromAccountId, tooAccountId, amount), "bankingservice");
        }
Exemplo n.º 5
0
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.Run(async(context) =>
            {
                await ServiceInvoker.Invoke(DotNetCoreRadiumPlugin.KernalInstance, new Messsaging.DCRadiumContext(context));
            });
        }
Exemplo n.º 6
0
 public void Transfer(string fromAccountId, string toAccountId, double amount)
 {
     try
     {
         ServiceInvoker.Invoke <IWithdrawService>(proxy => proxy.Withdraw(fromAccountId, amount), "withdrawservice");
         ServiceInvoker.Invoke <IDepositService>(proxy => proxy.Deposit(toAccountId, amount), "depositservice");
     }
     catch (Exception ex)
     {
         throw new FaultException(new FaultReason(ex.Message));
     }
 }
Exemplo n.º 7
0
        static void Main(string[] args)
        {
            string fromAccountId = "123456789";
            string toAccountId   = "987654321";
            double amount        = 1000;

            using (TransactionScope transactionScope = new TransactionScope())
            {
                ServiceInvoker.Invoke <IWithdrawService>(proxy => proxy.Withdraw(fromAccountId, amount), "withdrawservice");
                ServiceInvoker.Invoke <IDepositService>(proxy => proxy.Deposit(toAccountId, amount), "depositservice");
                transactionScope.Complete();
            }
        }
        public void Handle(HttpContext context)
        {
            Kernel kernel = RadiumAspService.Kernel;

            if (kernel == null)
            {
                kernel = new Kernel(Assembly.GetCallingAssembly());

                RadiumAspService.Kernel = kernel;
            }

            ServiceInvoker.Invoke(kernel, new Messaging.ASPRadiumContext(context));
        }
Exemplo n.º 9
0
        public override void ProcessRequest(ICommunicationContext ctx)
        {
            // Read post data which is expected to be JSON
            string args;

            using (var reader = new StreamReader(ctx.Request.InputStream, ctx.Request.ContentEncoding))
            {
                args = reader.ReadToEnd();
            }

            var     className   = GetClassName(ctx);
            var     methodName  = GetMethodName(ctx);
            var     dataListID  = GetDataListID(ctx);
            var     workspaceID = GetWorkspaceID(ctx);
            dynamic result;

            try
            {
                Guid workspaceGuid;
                Guid.TryParse(workspaceID, out workspaceGuid);

                Guid dataListGuid;
                Guid.TryParse(dataListID, out dataListGuid);

                //
                // NOTE: result.ToString() MUST return JSON
                //

                // Ensure we execute as the correct user ;)
                var userPrinciple = ctx.Request.User;
                if (userPrinciple != null)
                {
                    Thread.CurrentPrincipal = userPrinciple;
                    Dev2Logger.Log.Info("WEB EXECUTION USER CONTEXT [ " + userPrinciple.Identity.Name + " ]");
                }

                result = _serviceInvoker.Invoke(className, methodName, args, workspaceGuid, dataListGuid);
            }
            catch (Exception ex)
            {
                result = new ValidationResult
                {
                    ErrorMessage = ex.Message
                };
            }
            ctx.Send(new StringResponseWriter(result.ToString(), ContentTypes.Json));
        }
Exemplo n.º 10
0
 ResponseMessage HandleIncomingRequest(RequestMessage request)
 {
     return(invoker.Invoke(request));
 }
Exemplo n.º 11
0
        public override void ProcessRequest(ICommunicationContext ctx)
        {
            // Read post data which is expected to be JSON
            string args;

            using (var reader = new StreamReader(ctx.Request.InputStream, ctx.Request.ContentEncoding))
            {
                args = reader.ReadToEnd();
            }

            var     className     = GetClassName(ctx);
            var     methodName    = GetMethodName(ctx);
            var     dataListID    = GetDataListID(ctx);
            var     workspaceID   = GetWorkspaceID(ctx);
            dynamic result        = null;
            var     userPrinciple = ctx.Request.User;

            Thread.CurrentPrincipal = userPrinciple;

            try
            {
                Guid workspaceGuid;
                Guid.TryParse(workspaceID, out workspaceGuid);

                Guid dataListGuid;
                Guid.TryParse(dataListID, out dataListGuid);


                Thread.CurrentPrincipal = userPrinciple;
                Dev2Logger.Log.Info("WEB EXECUTION USER CONTEXT [ " + userPrinciple.Identity.Name + " ]");
                Common.Utilities.PerformActionInsideImpersonatedContext(userPrinciple, () => { result = _serviceInvoker.Invoke(className, methodName, args, workspaceGuid, dataListGuid); });
            }
            catch (Exception ex)
            {
                result = new ValidationResult
                {
                    ErrorMessage = ex.Message
                };
            }
            if (result != null)
            {
                ctx.Send(new StringResponseWriter(result.ToString(), ContentTypes.Json));
            }
        }