public async Task <IActionResult> Edit(int id, [Bind("Id,Name,CronExpression,EnvironmentId,JobDefinitionId")] TriggerViewModel model)
        {
            if (id != model.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    var env = await _context.ExecutionEnvironments.FindAsync(model.EnvironmentId);

                    var job = await _context.Jobs.FindAsync(model.JobDefinitionId);

                    var entity = new TriggerDefinition
                    {
                        Id             = model.Id,
                        Name           = model.Name,
                        Environment    = env,
                        JobDefinition  = job,
                        CronExpression = model.CronExpression
                    };
                    await _scheduler.DeregisterTrigger(entity);

                    _context.Update(entity);
                    await _context.SaveChangesAsync();

                    await _scheduler.RegisterTrigger(entity);
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!TriggerDefinitionExists(model.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(model));
        }
Beispiel #2
0
        public void Load(BinaryReaderBE reader)
        {
            ItemType    = reader.ReadInt16();
            PowerupType = reader.ReadInt16();
            WeaponClass = reader.ReadInt16();
            Flags       = reader.ReadInt16();

            FiringLightIntensity      = reader.ReadFixed();
            FiringIntensityDecayTicks = reader.ReadInt16();

            IdleHeight          = reader.ReadFixed();
            BobAmplitude        = reader.ReadFixed();
            KickHeight          = reader.ReadFixed();
            ReloadHeight        = reader.ReadFixed();
            IdleWidth           = reader.ReadFixed();
            HorizontalAmplitude = reader.ReadFixed();

            Collection     = reader.ReadInt16();
            IdleShape      = reader.ReadInt16();
            FiringShape    = reader.ReadInt16();
            ReloadingShape = reader.ReadInt16();
            Unused         = reader.ReadInt16();
            ChargingShape  = reader.ReadInt16();
            ChargedShape   = reader.ReadInt16();

            ReadyTicks         = reader.ReadInt16();
            AwaitReloadTicks   = reader.ReadInt16();
            LoadingTicks       = reader.ReadInt16();
            FinishLoadingTicks = reader.ReadInt16();
            PowerupTicks       = reader.ReadInt16();

            for (int i = 0; i < 2; ++i)
            {
                Triggers[i] = new TriggerDefinition();
                Triggers[i].Load(reader);
            }
        }
        public override void AddTrigger(TriggerDefinition trg)
        {
            if (string.IsNullOrEmpty(trg.Name))
            {
                return;
            }
            if (TriggerExists(trg.Name))
            {
                return;
            }

            //sequence trigger
            //string triggerBody = String.Format("as begin if (NEW.{0} is NULL) then NEW.{1} = GEN_ID({2}, 1); end", quotedColumn, quotedColumn, quoter.QuoteSequenceName(sequenceName));

            string triggerSql = String.Format(@"CREATE TRIGGER {0} FOR {1} ACTIVE {2} {3} POSITION 0 
                    {4}
                    ", trg.Name, trg.Table,
                                              trg.OnAfter ? "after" : "before",
                                              trg.Type.ToString().ToLower(),
                                              trg.TriggerBody
                                              );

            ExecuteNonQuery(triggerSql);
        }
Beispiel #4
0
        public override IEnumerable <TransitionDefinition> ParseTransitions(XElement schemeMedium, IEnumerable <ActorDefinition> actorDefinitions, IEnumerable <CommandDefinition> commandDefinitions, IEnumerable <ActionDefinition> actionDefinitions, IEnumerable <ActivityDefinition> activityDefinitions, IEnumerable <TimerDefinition> timerDefinitions)
        {
            if (schemeMedium == null)
            {
                throw new ArgumentNullException("schemeMedium");
            }
            if (commandDefinitions == null)
            {
                throw new ArgumentNullException("commandDefinitions");
            }
            if (actionDefinitions == null)
            {
                throw new ArgumentNullException("actionDefinitions");
            }
            if (activityDefinitions == null)
            {
                throw new ArgumentNullException("activityDefinitions");
            }
            var transitionElements = schemeMedium.SingleOrDefault("Transitions");

            if (transitionElements == null)
            {
                throw new ArgumentNullException("");
            }

            var commandDefinitionsList  = commandDefinitions.ToList();
            var actionDefinitionsList   = actionDefinitions.ToList();
            var activityDefinitionsList = activityDefinitions.ToList();
            var actorDefinitionsList    = actorDefinitions.ToList();
            var timerDefinitionsList    = timerDefinitions.ToList();

            var transitions = new List <TransitionDefinition>();

            foreach (var transitionElement in transitionElements.Elements().ToList())
            {
                var fromActivity = activityDefinitionsList.Single(ad => ad.Name == GetFrom(transitionElement));
                var toActivity   = activityDefinitionsList.Single(ad => ad.Name == GetTo(transitionElement));

                TriggerDefinition trigger = null;
                var triggersElement       = transitionElement.Element("Triggers");
                if (triggersElement != null)
                {
                    var triggerElement = triggersElement.Element("Trigger");
                    if (triggerElement != null)
                    {
                        trigger = TriggerDefinition.Create(GetType(triggerElement));
                        if (trigger.Type == TriggerType.Command)
                        {
                            (trigger as CommandTriggerDefinition).Command =
                                commandDefinitionsList.Single(cd => cd.Name == GetNameRef(triggerElement));
                        }
                        else if (trigger.Type == TriggerType.Timer)
                        {
                            (trigger as TimerTriggerDefinition).Timer =
                                timerDefinitionsList.Single(cd => cd.Name == GetNameRef(triggerElement));
                        }
                    }
                }

                ConditionDefinition condition = null;
                var conditionsElement         = transitionElement.Element("Conditions");
                if (conditionsElement != null)
                {
                    var conditionElement = conditionsElement.Element("Condition");
                    if (conditionElement != null)
                    {
                        condition = !string.IsNullOrEmpty(GetNameRefNullable(conditionElement))
                                        ? ConditionDefinition.Create(GetType(conditionElement), actionDefinitionsList.Single(ad => ad.Name == GetNameRef(conditionElement)), GetResultOnPreExecution(conditionElement))
                                        : ConditionDefinition.Create(GetType(conditionElement), GetResultOnPreExecution(conditionElement));
                    }
                }

                var transition = TransitionDefinition.Create(GetName(transitionElement), GetClassifier(transitionElement), fromActivity,
                                                             toActivity, trigger, condition);

                var restrictionsElement = transitionElement.Element("Restrictions");
                if (restrictionsElement != null)
                {
                    foreach (var element in restrictionsElement.Elements("Restriction"))
                    {
                        transition.AddRestriction(RestrictionDefinition.Create(GetType(element), actorDefinitionsList.Single(ad => ad.Name == GetNameRef(element))));
                    }
                }

                var onErrorsElement = transitionElement.Element("OnErrors");
                if (onErrorsElement != null)
                {
                    foreach (var element in onErrorsElement.Elements("OnError"))
                    {
                        //TODO Only One Type Of OnErrorHandler
                        transition.AddOnError(OnErrorDefinition.CreateSetActivityOnError(GetName(element), GetNameRef(element), GetPriority(element), GetTypeName(element) /*, GetIsExecuteImplementation(element),GetIsRethrow(element)*/));
                    }
                }
                transitions.Add(transition);
            }


            return(transitions);
        }
 private static string GetEscapedTriggerName(this TriggerDefinition trigger)
 {
     return(trigger.Name.Replace(' ', '_'));
 }
 public static string GetTriggerActionsFunctionName(this TriggerDefinition trigger)
 {
     return($"Trig_{trigger.GetEscapedTriggerName()}_Actions");
 }
 public static string GetInitTrigFunctionName(this TriggerDefinition trigger)
 {
     return($"InitTrig_{trigger.GetEscapedTriggerName()}");
 }
 public static string GetVariableName(this TriggerDefinition trigger)
 {
     return($"gg_trg_{trigger.GetEscapedTriggerName()}");
 }
        public void TriggerInRuleMatch(TriggerDefinition trigger, RuleDefinition rule, List<Link> _links)
        {
            List<string> matches = new List<string>();

            //Build up list of stirng pattern matches based on trigger access code
            matches = TriggerCodeConversion(trigger, matches);

            foreach (string s in matches)
            {
            if (rule.Body.StartsWith(s))
            {
                string triggerName = trigger.TableName.ToString() + ", " + trigger.RuleName.ToString() + ", " + trigger.Access.ToString();
                Link record = new Link(rule.Name, triggerName);
                bool exists = CheckLinkExists(_links, record);

                if (!exists)
                {
                    _links.Add(record);
                }
            }
            }
        }
        public List<string> TriggerCodeConversion(TriggerDefinition trigger, List<string> matches)
        {
            string tableToken = " " + trigger.TableName + ";";

            switch (trigger.Access)
            {
            case "I":
                matches.Add("INSERT" + tableToken);
                break;
            case "D":
                matches.Add("DELETE" + tableToken);
                break;
            case "R":
                matches.Add("REPLACE" + tableToken);
                break;
            case "W":
                matches.Add("INSERT" + tableToken);
                matches.Add("DELETE" + tableToken);
                matches.Add("REPLACE" + tableToken);
                break;
            case "G":
                matches.Add("GET" + tableToken);
                matches.Add("FORALL" + tableToken);
                break;
            default:
                matches.Add(" ");
                Console.WriteLine("Invalid triggerCode");
                break;

                //TriggerCodeConversion(trigger) + " " + trigger.TableName + ";"
            }
            return matches;
        }
Beispiel #11
0
 public TriggerWrapper(BuildDefinition buildDefinition, TriggerDefinition triggerDefinition)
 {
     this.buildDefinition = buildDefinition;
     this.triggerDefinition = triggerDefinition;
 }
Beispiel #12
0
 public Trigger(TriggerDefinition triggerDefinition)
     : this()
 {
     Conditions.AddRange(triggerDefinition.Conditions);
     Actions.AddRange(triggerDefinition.Actions);
 }
 private TriggerKey GetTriggerKey(TriggerDefinition triggerDefinition)
 => new TriggerKey(triggerDefinition.Name, triggerDefinition.JobDefinition?.Group.GetNameOrDefault());