Ejemplo n.º 1
0
 public void DeleteRule(int ruleId)
 {
     using (var rulesDb = new RulesDbEntities())
     {
         rulesDb.Rule.Remove(rulesDb.Rule.FirstOrDefault(r => r.Id == ruleId));
         rulesDb.SaveChanges();
     }
 }
Ejemplo n.º 2
0
        public int UpsertRule(global::Scheduler.Types.Rule rule)
        {
            using (var rulesDb = new RulesDbEntities())
            {
                rulesDb.Database.Connection.Open();

                var upsertRule = rule.Id == 0
                    ? rulesDb.Rule.Add(new Rule())
                    : rulesDb.Rule.FirstOrDefault(r => r.Id == rule.Id);

                if (upsertRule == null) return 0;

                upsertRule.Enabled = rule.Enabled;
                upsertRule.Name = rule.Name;

                rulesDb.SaveChanges();

                foreach (var ifCondition in rule.IfConditions)
                {
                    var upsertIfCondition = rule.Id == 0
                        ? rulesDb.IfCondition.Add(new IfCondition())
                        : rulesDb.IfCondition.FirstOrDefault(i => i.Id == ifCondition.Id);

                    if (upsertIfCondition == null) return 0;

                    upsertIfCondition.RuleId = upsertRule.Id;
                    upsertIfCondition.Recurs = ifCondition.Recurs;
                    upsertIfCondition.EqualsText = ifCondition.EqualsText;
                    upsertIfCondition.EqualsType = ifCondition.EqualsType;
                    upsertIfCondition.Text = ifCondition.Text;
                    upsertIfCondition.Type = ifCondition.Type;
                    upsertIfCondition.TokenHeader = ifCondition.TokenHeader;

                    rulesDb.SaveChanges();
                }

                foreach (var thenAction in rule.ThenActions)
                {
                    var upsertThenAction = rule.Id == 0
                        ? rulesDb.ThenAction.Add(new ThenAction())
                        : rulesDb.ThenAction.FirstOrDefault(a => a.Id == thenAction.Id);

                    if (upsertThenAction == null) return 0;

                    upsertThenAction.RuleId = upsertRule.Id;
                    upsertThenAction.Type = thenAction.Type;

                    rulesDb.SaveChanges();

                    foreach (var thenActionParam in thenAction.ThenActionParams)
                    {
                        var upsertThenActionParam = rule.Id == 0
                            ? rulesDb.ThenActionParams.Add(new ThenActionParams())
                            : rulesDb.ThenActionParams.FirstOrDefault(p => p.Id == thenActionParam.Id);

                        if (upsertThenActionParam == null) return 0;

                        upsertThenActionParam.Name = thenActionParam.Name;
                        upsertThenActionParam.Text = thenActionParam.Text;
                        upsertThenActionParam.ThenActionId = upsertThenAction.Id;

                        rulesDb.SaveChanges();
                    }
                }

                rulesDb.Database.Connection.Close();
                return upsertRule.Id;
            }
        }