Example #1
0
        private void RegisterClientServices()
        {
            if (!RegisterSingletonService <IServiceStatusManageFactory, ServiceStatusManageFactory>())
            {
                return;
            }
            AddStartUpTask <ServiceStatusManageStartup>();
            AddStartUpTask <RemotingClientStartup>();
            RegisterSingletonService <ClientDefaultInterceptor>();
            RegisterSingletonService <IClientFactory, ClientFactory>();
            RegisterSingletonService <IRemotingInvoke, RemotingInvoke>();
            RegisterSingletonService <ICircuitBreaker, PollyCircuitBreaker>();

            var types    = ReflectHelper.GetDependencyTypes();
            var services = types.Where(t => t.IsInterface && typeof(IService).IsAssignableFrom(t)).ToList();

            //Generate client proxy
            var proxies = ProxyGenerator.GenerateProxy(services);

            foreach (var service in services)
            {
                //Register proxy class,For support meta data using scope.
                RegisterScopedService(service, proxies.FirstOrDefault(p => service.IsAssignableFrom(p)));
            }

            RegisterInterceptors();
        }
Example #2
0
        public void UpdateProxyTemplate(ProxyTemplateChangedMessage message)
        {
            if (Templates.SelectedItem == null)
            {
                return;
            }
            var selectedTemplate = ((TemplateModel)Templates.SelectedItem);

            var properties = StoredProxyProperties.Where(x => x.Name != null).ToDictionary(x => x.Name, x => x.Value);

            //this stuff generates the real proxy image, maybe we'll need to keep it in for more accurate image
            var proxy = ProxyGenerator.GenerateProxy(_proxydef.BlockManager, selectedTemplate._def, properties, null);

            using (var ms = new MemoryStream())
            {
                proxy.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
                ms.Position = 0;

                ProxyImage = new BitmapImage();
                ProxyImage.BeginInit();
                ProxyImage.CacheOption  = BitmapCacheOption.OnLoad;
                ProxyImage.StreamSource = ms;
                ProxyImage.EndInit();
            }
            proxy.Dispose();

            BaseImage           = new BitmapImage(new Uri(selectedTemplate._def.src));
            ActiveOverlayLayers = new ObservableCollection <OverlayBlockDefinitionItemModel>(
                selectedTemplate._def.GetOverLayBlocks(properties).Where(x => x.SpecialBlock == null).Select(
                    x => (OverlayBlockDefinitionItemModel)OverlayBlocks.First(y => ((OverlayBlockDefinitionItemModel)y).Name == x.Block)));
            ActiveTextLayers = new ObservableCollection <ProxyTextLinkItemModel>(
                selectedTemplate._def.GetTextBlocks(properties).Select(
                    x => new ProxyTextLinkItemModel(x)));

            RaisePropertyChanged("BaseImage");
            RaisePropertyChanged("BaseWidth");
            RaisePropertyChanged("BaseHeight");
            RaisePropertyChanged("");
        }