public AcmaInternalExitEventViewModel(AcmaInternalExitEvent model) : base(model) { this.Commands.AddItem("Add", t => this.AddAttribute(), t => this.CanAddAttribute()); this.Commands.AddItem("Remove", t => this.RemoveAttribute(), t => this.CanRemoveAttribute()); this.typedModel = model; this.RuleGroup = new RuleGroupViewModel(this.typedModel.RuleGroup, false, "Execution rules"); this.QueryGroups = new DBQueryObjectsViewModel(this.typedModel.RecipientQueries, "Recipient queries"); this.Recipients = new AcmaSchemaAttributesViewModel(new BindingList <AcmaSchemaAttribute>(this.typedModel.Recipients)); }
private static AcmaEvent GetAccountNameChangedEvent() { UniqueIDCache.ClearIdCache(); AcmaInternalExitEvent maevent = new AcmaInternalExitEvent(); maevent.ID = "AccountNameChanged"; maevent.Recipients.Add(ActiveConfig.DB.GetAttribute("supervisor")); maevent.RuleGroup = new RuleGroup() { Operator = GroupOperator.Any }; maevent.RuleGroup.Items.Add(new AttributeChangeRule() { Attribute = ActiveConfig.DB.GetAttribute("accountName"), TriggerEvents = TriggerEvents.Add | TriggerEvents.Delete | TriggerEvents.Update }); return(maevent); }
private IList <RaisedEvent> RaiseEvents() { List <RaisedEvent> raisedEvents = new List <RaisedEvent>(); if (this.Events != null) { foreach (string eventName in this.Events) { AcmaInternalExitEvent internalEvent = new AcmaInternalExitEvent(); internalEvent.AllowDuplicateIDs = true; internalEvent.ID = eventName; RaisedEvent raisedEvent = new RaisedEvent(internalEvent); raisedEvents.Add(raisedEvent); } } return(raisedEvents); }
public void TestSerialization() { AcmaInternalExitEvent toSerialize = new AcmaInternalExitEvent(); toSerialize.ID = "testName"; toSerialize.RuleGroup = new RuleGroup() { Operator = GroupOperator.Any }; toSerialize.RuleGroup.Items.Add(new ObjectChangeRule() { TriggerEvents = TriggerEvents.Delete }); toSerialize.Recipients.Add(ActiveConfig.DB.GetAttribute("supervisor")); toSerialize.Recipients.Add(ActiveConfig.DB.GetAttribute("directReports")); toSerialize.RecipientQueries = new ObservableCollection <DBQueryObject>(); DBQueryGroup group = new DBQueryGroup(); group.Operator = GroupOperator.Any; toSerialize.RecipientQueries.Add(group); group.DBQueries.Add(new DBQueryByValue(ActiveConfig.DB.GetAttribute("sn"), ValueOperator.EndsWith, ActiveConfig.DB.GetAttribute("firstName"))); Lithnet.Common.ObjectModel.UniqueIDCache.ClearIdCache(); AcmaInternalExitEvent deserialized = UnitTestControl.XmlSerializeRoundTrip <AcmaInternalExitEvent>(toSerialize); Assert.AreEqual(toSerialize.ID, deserialized.ID); Assert.AreEqual(toSerialize.RuleGroup.Operator, deserialized.RuleGroup.Operator); Assert.AreEqual(((ObjectChangeRule)toSerialize.RuleGroup.Items[0]).TriggerEvents, ((ObjectChangeRule)deserialized.RuleGroup.Items[0]).TriggerEvents); CollectionAssert.AreEqual(toSerialize.Recipients, deserialized.Recipients); DBQueryGroup deserializedGroup = toSerialize.RecipientQueries[0] as DBQueryGroup; Assert.AreEqual(group.Operator, deserializedGroup.Operator); Assert.AreEqual(((DBQueryByValue)group.DBQueries[0]).SearchAttribute, ((DBQueryByValue)deserializedGroup.DBQueries[0]).SearchAttribute); Assert.AreEqual(((DBQueryByValue)group.DBQueries[0]).Operator, ((DBQueryByValue)deserializedGroup.DBQueries[0]).Operator); Assert.AreEqual(((DBQueryByValue)group.DBQueries[0]).ValueDeclarations[0].Declaration, ((DBQueryByValue)deserializedGroup.DBQueries[0]).ValueDeclarations[0].Declaration); }