public void DeleteRule(int ruleId) { using (var rulesDb = new RulesDbEntities()) { rulesDb.Rule.Remove(rulesDb.Rule.FirstOrDefault(r => r.Id == ruleId)); rulesDb.SaveChanges(); } }
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; } }