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));
 }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);
        }