コード例 #1
0
ファイル: EntityCreator.cs プロジェクト: ronbrogan/OpenH2
        public Entity FromTriggerVolume(ScenarioTag.TriggerVolume tv)
        {
            var entity = TriggerFactory.FromScenarioTriggerVolume(this.Map.Scenario, tv);

            tv.GameObject = entity;
            return(entity);
        }
コード例 #2
0
ファイル: JobController.cs プロジェクト: jangocheng/Swarm
        public async Task <IActionResult> Update(string jobId, [FromBody] Job value)
        {
            if (ModelState.IsValid)
            {
                if (string.IsNullOrWhiteSpace(jobId))
                {
                    return(new JsonResult(new ApiResult(ApiResult.Error, "Id is empty/null")));
                }

                if (!await _store.CheckJobExists(jobId))
                {
                    return(new JsonResult(new ApiResult(ApiResult.Error, $"Job {jobId} not exists")));
                }

                var qzJob   = value.ToQuartzJob();
                var trigger = TriggerFactory.Create(value.Trigger, jobId, value.Properties);

                // TODO: need test if need delete qzJob firstly?
                value.Id = jobId;
                await _store.UpdateJob(value);

                await _scheduler.UnscheduleJob(new TriggerKey(jobId));

                await _scheduler.ScheduleJob(qzJob, trigger);

                return(new JsonResult(new ApiResult(ApiResult.SuccessCode, "success")));
            }

            return(new JsonResult(new ApiResult(ApiResult.ModelNotValid, GetModelStateErrorMsg())));
        }
コード例 #3
0
ファイル: JobController.cs プロジェクト: jangocheng/Swarm
        public async Task <IActionResult> Create([FromBody] Job value)
        {
            if (ModelState.IsValid)
            {
                var apiResult = ValidateProperties(value);
                if (apiResult != null)
                {
                    return(apiResult);
                }

                if (await _store.IsJobExists(value.Name, value.Group))
                {
                    return(new JsonResult(new ApiResult(ApiResult.Error, $"Job [{value.Name}, {value.Group}] exists")));
                }

                await _store.AddJob(value);

                if (string.IsNullOrWhiteSpace(value.Id))
                {
                    return(new JsonResult(new ApiResult(ApiResult.DbError, "Save job failed")));
                }

                var qzJob   = value.ToQuartzJob();
                var trigger = TriggerFactory.Create(value.Trigger, value.Id, value.Properties);

                await _scheduler.ScheduleJob(qzJob, trigger);

                _logger.LogInformation(
                    $"Create job {JsonConvert.SerializeObject(value)} success");
                return(new JsonResult(new ApiResult(ApiResult.SuccessCode, null, value.Id)));
            }

            return(new JsonResult(new ApiResult(ApiResult.ModelNotValid, GetModelStateErrorMsg())));
        }
コード例 #4
0
        private void Iterate()
        {
            var factory = new TriggerFactory(this.Trigger);

            _next = factory.Forward(_last ?? DateTime.Now);

            this.Status = JobStatus.Ready;
        }
コード例 #5
0
ファイル: AreaService.cs プロジェクト: Clemon-R/Area
 public AreaService(
     IHttpContextAccessor accessor,
     ApplicationDbContext context,
     TriggerFactory triggerFactory)
 {
     _context        = context;
     _triggerFactory = triggerFactory;
     _accessor       = accessor;
 }
コード例 #6
0
ファイル: ObjectManager.cs プロジェクト: vijaydairyf/PrtgAPI
 /// <summary>
 /// Initializes a new instance of the <see cref="ObjectManager"/> class.
 /// </summary>
 /// <param name="client">The client to use for executing API requests.</param>
 internal ObjectManager(PrtgClient client)
 {
     Sensor   = new SensorFactory(client);
     Device   = new DeviceFactory(client);
     Group    = new GroupFactory(client);
     Probe    = new ProbeFactory(client);
     Trigger  = new TriggerFactory(client);
     Property = new PropertyFactory(client);
 }
コード例 #7
0
        public static TRes Handle <TEvent, TRes>(TEvent input, ILambdaContext context, Func <TRes> handlerFn)
        {
            if (Utils.CurrentConfig == null || Utils.CurrentConfig.IsEpsagonDisabled)
            {
                return(handlerFn());
            }

            var       clientCodeExecuted = false;
            var       returnValue        = default(TRes);
            Exception exception          = null;

            try {
                Utils.DebugLogIfEnabled("entered epsagon lambda handler");
                // handle trigger event
                using (var scope = GlobalTracer.Instance.BuildSpan("").StartActive(finishSpanOnDispose: true)) {
                    var trigger = TriggerFactory.CreateInstance(input.GetType(), input);
                    trigger.Handle(context, scope);
                }
                // handle invocation event
                using (var scope = GlobalTracer.Instance.BuildSpan((typeof(TEvent).Name)).StartActive(finishSpanOnDispose: true))
                    using (var handler = new LambdaTriggerHandler <TEvent, TRes>(input, context, scope)) {
                        handler.HandleBefore();
                        try {
                            clientCodeExecuted = true;
                            returnValue        = handlerFn();
                        } catch (Exception e) {
                            scope.Span.AddException(e);
                            exception = e;
                        }

                        handler.HandleAfter(returnValue);
                    }
                var trace = EpsagonConverter.CreateTrace(JaegerTracer.GetSpans());
                EpsagonTrace.SendTrace(trace);
                JaegerTracer.Clear();
                Utils.DebugLogIfEnabled("finishing epsagon lambda handler");
            } catch (Exception ex) {
                HandleInstrumentationError(ex);
            } finally {
                if (exception != null)
                {
                    throw exception;
                }

                if (!clientCodeExecuted)
                {
                    returnValue = handlerFn();
                }
            }
            return(returnValue);
        }
コード例 #8
0
        public void Resolve_FromInternalServices_FindsType()
        {
            var serviceProvider = new ServiceCollection()
                                  .AddTransient(typeof(ITriggerInstanceFactory <IBeforeSaveTrigger <object> >), _ => new TriggerInstanceFactory <SampleTrigger>(null))
                                  .BuildServiceProvider();

            var applicationServiceProvider = new ServiceCollection().BuildServiceProvider();

            var subject = new TriggerFactory(serviceProvider);

            var triggers = subject.Resolve(applicationServiceProvider, typeof(IBeforeSaveTrigger <object>));

            Assert.Single(triggers);
        }
コード例 #9
0
        public void Resolve_FromExternalServiceProvider_FindsType()
        {
            var serviceProvider = new ServiceCollection().BuildServiceProvider();

            var applicationServiceProvider = new ServiceCollection()
                                             .AddTransient <IBeforeSaveTrigger <object>, SampleTrigger>()
                                             .BuildServiceProvider();

            var subject = new TriggerFactory(serviceProvider);

            var triggers = subject.Resolve(applicationServiceProvider, typeof(IBeforeSaveTrigger <object>));

            Assert.Single(triggers);
        }
コード例 #10
0
        public void Resolve_FromInternalServices_GetsConstructedUsingExternalServiceProvider()
        {
            var serviceProvider = new ServiceCollection()
                                  .AddLogging()
                                  .AddTransient(typeof(ITriggerInstanceFactory <IBeforeSaveTrigger <object> >), _ => new TriggerInstanceFactory <SampleTrigger2>(null))
                                  .BuildServiceProvider();

            var subject = new TriggerFactory(serviceProvider);

            var applicationServiceProvider = new ServiceCollection()
                                             .AddSingleton(subject)
                                             .BuildServiceProvider();

            var trigger = subject.Resolve(applicationServiceProvider, typeof(IBeforeSaveTrigger <object>)).FirstOrDefault() as SampleTrigger2;

            Assert.NotNull(trigger);
            Assert.Equal(subject, trigger.TriggerFactory);
        }
コード例 #11
0
        public UpsertProfileExtended(Profile profile, IEnumerable <DeviceFullInfo> playbacks, IEnumerable <DeviceFullInfo> recordings, SettingsForm settingsForm, bool editing = false)
        {
            _oldProfile     = editing ? profile : null;
            _profile        = editing ? profile.Copy() : profile;
            _settingsForm   = settingsForm;
            _editing        = editing;
            _triggerFactory = new TriggerFactory();
            InitializeComponent();

            HideTriggerComponents();

            hotKeyControl.Location = textInput.Location;

            LocalizeForm();
            using var iconBitmap = new Bitmap(Resources.profile_menu_icon);
            Icon = Icon.FromHandle(iconBitmap.GetHicon());
            InitializeFromProfile();

            try
            {
                //Only let user on Windows 10 change the switch also default device
                //Since the feature isn't available on Windows 7
                if (Environment.OSVersion.Version.Major < 10)
                {
                    profile.AlsoSwitchDefaultDevice = true;
                    switchDefaultCheckBox.Hide();
                }
            }
            catch (Exception)
            {
                // ignored
            }

            descriptionLabel.Hide();
            triggerLabel.Hide();
            InitRecordingPlaybackComboBoxes(playbacks, recordings);
            switchDefaultCheckBox.DataBindings.Add(nameof(CheckBox.Checked), _profile, nameof(Profile.AlsoSwitchDefaultDevice), false, DataSourceUpdateMode.OnPropertyChanged);
            nameTextBox.DataBindings.Add(nameof(TextBox.Text), _profile, nameof(Profile.Name), false, DataSourceUpdateMode.OnPropertyChanged);
            notifyCheckbox.DataBindings.Add(nameof(CheckBox.Checked), _profile, nameof(Profile.NotifyOnActivation), false, DataSourceUpdateMode.OnPropertyChanged);
            restoreDevicesCheckBox.DataBindings.Add(nameof(CheckBox.Checked), _profile, nameof(Profile.RestoreDevices), false, DataSourceUpdateMode.OnPropertyChanged);
        }
コード例 #12
0
        /*============================================================================*/
        /* Constructor                                                                */
        /*============================================================================*/

        /// <summary>
        /// Creates a command trigger map
        /// </summary>
        /// <param name="keyFactory">Factory function to creates keys</param>
        /// <param name="triggerFactory">Factory function to create triggers</param>
        public CommandTriggerMap(KeyFactory keyFactory, TriggerFactory triggerFactory)
        {
            _keyFactory     = keyFactory;
            _triggerFactory = triggerFactory;
        }
コード例 #13
0
		/*============================================================================*/
		/* Constructor                                                                */
		/*============================================================================*/

		/// <summary>
		/// Creates a command trigger map
		/// </summary>
		/// <param name="keyFactory">Factory function to creates keys</param>
		/// <param name="triggerFactory">Factory function to create triggers</param>
		public CommandTriggerMap (KeyFactory keyFactory, TriggerFactory triggerFactory)
		{
			_keyFactory = keyFactory;
			_triggerFactory = triggerFactory;
		}
コード例 #14
0
 public SampleTrigger2(TriggerFactory triggerFactory)
 {
     TriggerFactory = triggerFactory;
 }
コード例 #15
0
        public static async Task Handle <TEvent>(TEvent input, ILambdaContext context, Func <Task> handlerFn)
        {
            if (Utils.CurrentConfig == null || Utils.CurrentConfig.IsEpsagonDisabled)
            {
                await handlerFn();

                return;
            }

            var       clientCodeExecuted = false;
            Exception exception          = null;

            try {
                if (Utils.CurrentConfig.IsEpsagonDisabled)
                {
                    await handlerFn();
                }

                Utils.DebugLogIfEnabled("entered epsagon lambda handler");
                Utils.DebugLogIfEnabled("handling trigger event");

                using (var scope = GlobalTracer.Instance.BuildSpan("").StartActive(finishSpanOnDispose: true)) {
                    var trigger = TriggerFactory.CreateInstance(input.GetType(), input);
                    trigger.Handle(context, scope);
                }

                // handle invocation event
                Utils.DebugLogIfEnabled("handling invocation event");
                using (var scope = GlobalTracer.Instance.BuildSpan((typeof(TEvent).Name)).StartActive(finishSpanOnDispose: true))
                    using (var handler = new LambdaTriggerHandler <TEvent, string>(input, context, scope)) {
                        Utils.DebugLogIfEnabled("handling before execution");
                        handler.HandleBefore();

                        Utils.DebugLogIfEnabled("calling client handler");
                        try {
                            clientCodeExecuted = true;
                            await handlerFn();
                        } catch (Exception e) {
                            scope.Span.AddException(e);
                            exception = e;
                        }


                        Utils.DebugLogIfEnabled("handling after execution");
                        handler.HandleAfter("");
                    }

                Utils.DebugLogIfEnabled("creating trace");
                var trace = EpsagonConverter.CreateTrace(JaegerTracer.GetSpans());
                EpsagonTrace.SendTrace(trace);
                JaegerTracer.Clear();

                Utils.DebugLogIfEnabled("finishing epsagon lambda handler");
            } catch (Exception ex) {
                HandleInstrumentationError(ex);
            } finally {
                if (exception != null)
                {
                    throw exception;
                }

                if (!clientCodeExecuted)
                {
                    await handlerFn();
                }
            }
        }
コード例 #16
0
ファイル: BackgroundJobService.cs プロジェクト: Clemon-R/Area
 public BackgroundJobService(ApplicationDbContext context, TriggerFactory triggerFactory)
 {
     _context        = context;
     _triggerFactory = triggerFactory;
 }