示例#1
0
        protected override async Task ApplyProfile(ProfileBase profile)
        {
            if (profile is LocalProfile localProfile)
            {
                var subscriber         = new LocalSubscriber();
                var snippetStore       = new LocalSnippetStore(localProfile.FolderName, subscriber);
                var csScriptRunService = new CsScriptRunService(_clipboardService);
                var pyScriptRunService = new PyScriptRunService(_clipboardService);
                SnippetService = new SnippetService(snippetStore, _messenger, csScriptRunService, pyScriptRunService, _dispatcher, subscriber, "Me");
                var userStore = new LocalUserStore(localProfile.FolderName, subscriber);
                UserService = new UserService(userStore, _messenger, _dispatcher, subscriber);

                await subscriber.StartAsync();

                Subscriber = subscriber;
            }
        }
示例#2
0
        public SnippetService(
            ISnippetStore dataStore,
            IMessenger messenger,
            CsScriptRunService csScriptRunService,
            PyScriptRunService pyScriptRunService,
            IDispatcherHelper dispatcher,
            ISubscriber subscriber,
            string myName)
        {
            _store              = dataStore;
            _messenger          = messenger;
            _csScriptRunService = csScriptRunService;
            _pyScriptRunService = pyScriptRunService;
            _dispatcher         = dispatcher;
            _subscriber         = subscriber;
            _myName             = myName;

            subscriber.Register <SnippetCreated>(Handle);
            subscriber.Register <SnippetUpdated>(Handle);
            subscriber.Register <SnippetDeleted>(Handle);
        }
示例#3
0
        protected override async Task ApplyProfile(ProfileBase profile)
        {
            if (_rabbitMqModelFactory != null)
            {
                _rabbitMqModelFactory.Dispose();
                _rabbitMqModelFactory = null;
            }

            if (profile is RmqProfile rmqProfile)
            {
                _profile = rmqProfile;

                _rabbitMqModelFactory = new RabbitMqModelFactory(
                    _profile.RabbitMqHost,
                    _profile.RabbitMqVirtualHost,
                    _profile.RabbitMqUser,
                    _profile.RabbitMqPassword);

                var requestClient = CreateRequestClient();
                var tokenProvider = new TokenProvider(CreateRequestClient, _profile.ServerUser, _profile.ServerPassword);
                var subscriber    = new RabbitMqSubscriber(
                    _rabbitMqModelFactory,
                    exception =>
                {
                    _dispatcher.BeginInvokeOnMainThread(async() => await _errorService.ShowAlertAsync(exception));
                });

                var snippetStore       = new SnippetStore(requestClient, tokenProvider);
                var csScriptRunService = new CsScriptRunService(_clipboardService);
                var pyScriptRunService = new PyScriptRunService(_clipboardService);
                SnippetService = new SnippetService(snippetStore, _messenger, csScriptRunService, pyScriptRunService, _dispatcher, subscriber, _profile.ServerUser);
                var userStore = new UserStore(requestClient, tokenProvider);
                UserService = new UserService(userStore, _messenger, _dispatcher, subscriber);

                await subscriber.StartAsync();

                Subscriber = subscriber;
            }
        }
示例#4
0
        public async Task <string> Run(string language, string code, string template, Dictionary <string, string> variables)
        {
            switch (language)
            {
            case "C#":
                return(await Task.Run(async() => await _csScriptRunService.Run(code, template, variables)));

            case "Python":
                await PyScriptRunService.PyInitAsync();

                return(_pyScriptRunService.Run(code, template, variables));

            case "NodeJS":
                return(await Jering.Javascript.NodeJS.StaticNodeJSService.InvokeFromStringAsync <string>(code,
                                                                                                         args : new object[]
                {
                    template,
                    variables
                }));
            }

            throw new NotImplementedException($"Language '{language}' not implemented!");
        }
示例#5
0
        protected override async Task ApplyProfile(ProfileBase profile)
        {
            if (profile is RestProfile restProfile)
            {
                _profile = restProfile;

                var requestClient = CreateRequestClient();
                var tokenProvider = new TokenProvider(CreateRequestClient, _profile.ServerUser, _profile.ServerPassword);

                var token = await tokenProvider.GetToken();

                var serverUri  = new Uri(_profile.ServerName);
                var signalRUri = new Uri(serverUri, "/cosei");

                var subscriber = new SignalRSubscriber(signalRUri.AbsoluteUri,
                                                       options =>
                {
                    options.Headers.Add("Authorization", $"Bearer {token}");
                },
                                                       exception =>
                {
                    _dispatcher.BeginInvokeOnMainThread(async() => await _errorService.ShowAlertAsync(exception));
                });

                var snippetStore       = new SnippetStore(requestClient, tokenProvider);
                var csScriptRunService = new CsScriptRunService(_clipboardService);
                var pyScriptRunService = new PyScriptRunService(_clipboardService);
                SnippetService = new SnippetService(snippetStore, _messenger, csScriptRunService, pyScriptRunService, _dispatcher, subscriber, _profile.ServerUser);
                var userStore = new UserStore(requestClient, tokenProvider);
                UserService = new UserService(userStore, _messenger, _dispatcher, subscriber);

                await subscriber.StartAsync();

                Subscriber = subscriber;
            }
        }