public void DBQueryByAttributeExceptionOnMVNull() { Guid valueSourceObjectId = Guid.NewGuid(); DBQueryByValue match1 = new DBQueryByValue(ActiveConfig.DB.GetAttribute("mailAlternateAddresses"), ValueOperator.Equals, ActiveConfig.DB.GetAttribute("mailAlternateAddresses")); DBQueryGroup group = new DBQueryGroup(GroupOperator.All); group.AddChildQueryObjects(match1); try { MAObjectHologram valueSourceObject = ActiveConfig.DB.CreateMAObject(valueSourceObjectId, "person"); valueSourceObject.CommitCSEntryChange(); try { DBQueryBuilder queryBuilder = new DBQueryBuilder(group, 0, valueSourceObject); Assert.Fail("The expected exception was not thrown"); } catch (QueryValueNullException) { } } finally { ActiveConfig.DB.DeleteMAObjectPermanent(valueSourceObjectId); } }
public void DBQueryByAttributeMVToMVEquals() { Guid searchObjectId = Guid.NewGuid(); Guid valueSourceObjectId = Guid.NewGuid(); DBQueryByValue match1 = new DBQueryByValue(ActiveConfig.DB.GetAttribute("mailAlternateAddresses"), ValueOperator.Equals, ActiveConfig.DB.GetAttribute("mailAlternateAddresses")); DBQueryByValue match2 = new DBQueryByValue(ActiveConfig.DB.GetAttribute("objectId"), ValueOperator.Equals, searchObjectId); DBQueryGroup group = new DBQueryGroup(GroupOperator.All); group.AddChildQueryObjects(match1, match2); try { MAObjectHologram searchObject = ActiveConfig.DB.CreateMAObject(searchObjectId, "person"); searchObject.SetAttributeValue(ActiveConfig.DB.GetAttribute("mailAlternateAddresses"), new List <object>() { "*****@*****.**", "*****@*****.**", "*****@*****.**" }); searchObject.CommitCSEntryChange(); MAObjectHologram valueSourceObject = ActiveConfig.DB.CreateMAObject(valueSourceObjectId, "person"); valueSourceObject.SetAttributeValue(ActiveConfig.DB.GetAttribute("mailAlternateAddresses"), new List <object>() { "*****@*****.**", "*****@*****.**" }); valueSourceObject.CommitCSEntryChange(); List <MAObjectHologram> results = ActiveConfig.DB.GetMAObjectsFromDBQuery(group, valueSourceObject).ToList(); if (results.Count() != 1) { Assert.Fail("The incorrect number of results were returned"); } if (results.First().ObjectID != searchObjectId) { Assert.Fail("The incorrect object was returned"); } valueSourceObject.SetObjectModificationType(ObjectModificationType.Update, false); valueSourceObject.SetAttributeValue(ActiveConfig.DB.GetAttribute("mailAlternateAddresses"), new List <object>() { "*****@*****.**", "*****@*****.**" }); valueSourceObject.CommitCSEntryChange(); results = ActiveConfig.DB.GetMAObjectsFromDBQuery(group, valueSourceObject).ToList(); if (results.Count != 0) { Assert.Fail("The test returned an unexpected object"); } } finally { ActiveConfig.DB.DeleteMAObjectPermanent(searchObjectId); ActiveConfig.DB.DeleteMAObjectPermanent(valueSourceObjectId); } }
public IList <AcmaResource> GetResourcesByAttributePairs(string key1, string keyValue1, string key2, string keyValue2) { DBQueryGroup queryGroup = new DBQueryGroup(GroupOperator.All); queryGroup.AddChildQueryObjects(new DBQueryByValue(ActiveConfig.DB.GetAttribute(key1), ValueOperator.Equals, keyValue1)); queryGroup.AddChildQueryObjects(new DBQueryByValue(ActiveConfig.DB.GetAttribute(key2), ValueOperator.Equals, keyValue2)); IList <MAObjectHologram> holograms = ActiveConfig.DB.GetMAObjectsFromDBQuery(queryGroup).ToList(); return(holograms.Select(t => t.ToAcmaResource()).ToList()); }
public DBQueryGroupViewModel(DBQueryGroup model) : base(model) { this.Commands.AddItem("DeleteQueryGroup", t => this.DeleteQueryGroup()); this.Commands.AddItem("AddQueryByValue", t => this.AddDBQueryByValue()); this.Commands.AddItem("AddQueryGroup", t => this.AddDBQueryGroup()); this.typedModel = model; this.IgnorePropertyHasChanged.Add("DisplayName"); this.DBQueryObjects = new DBQueryObjectsViewModel(this.typedModel.DBQueries); this.Commands.AddItem("Paste", t => this.DBQueryObjects.Paste(), t => this.DBQueryObjects.CanPaste()); this.EnableCutCopy(); }
public IList <AcmaResource> GetResourcesByAttributePair(string key, string keyValue, string op = "Equals") { ValueOperator vo; if (!string.IsNullOrWhiteSpace(op)) { vo = (ValueOperator)Enum.Parse(typeof(ValueOperator), op, true); } else { vo = ValueOperator.Equals; } DBQueryGroup queryGroup = new DBQueryGroup(GroupOperator.All); queryGroup.AddChildQueryObjects(new DBQueryByValue(ActiveConfig.DB.GetAttribute(key), vo, keyValue)); IList <MAObjectHologram> holograms = ActiveConfig.DB.GetMAObjectsFromDBQuery(queryGroup).ToList(); return(holograms.Select(t => t.ToAcmaResource()).ToList()); }
protected override void ProcessRecord() { Global.ThrowIfNotConnected(this); try { DBQueryGroup group = new DBQueryGroup(this.Operator); foreach (DBQueryObject item in this.QueryObjects) { group.DBQueries.Add(item); } WriteObject(group); } catch (Exception ex) { ErrorRecord error = new ErrorRecord(ex, "UnknownError", ErrorCategory.NotSpecified, this); ThrowTerminatingError(error); } }
public AcmaResource GetResourceByTypeAndKey(string objectType, string key, string keyValue) { DBQueryGroup queryGroup = new DBQueryGroup(GroupOperator.All); queryGroup.AddChildQueryObjects(new DBQueryByValue(ActiveConfig.DB.GetAttribute("objectClass"), ValueOperator.Equals, objectType)); queryGroup.AddChildQueryObjects(new DBQueryByValue(ActiveConfig.DB.GetAttribute(key), ValueOperator.Equals, keyValue)); IList <MAObjectHologram> holograms = ActiveConfig.DB.GetMAObjectsFromDBQuery(queryGroup).ToList(); if (holograms.Count == 0) { return(null); } else if (holograms.Count > 1) { throw new WebFaultException(System.Net.HttpStatusCode.Ambiguous); } else { return(holograms.First().ToAcmaResource()); } }
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); }
public DBQueryGroupViewModel(DBQueryGroup model, string displayName) : this(model) { this.displayName = displayName; }
protected override void ProcessRecord() { if (!this.IsConnectionStatusOk(false)) { return; } if (this.ID != null) { Guid? guidID; string stringID = this.ID as string; if (stringID != null) { guidID = new Guid(stringID); } else { guidID = this.ID as Guid?; if (guidID == null) { throw new ArgumentException("The ID must be a GUID object or a GUID in string format"); } } MAObjectHologram maobject = ActiveConfig.DB.GetMAObjectOrDefault(new Guid(stringID)); if (maobject == null) { return; } this.WriteObject(new AcmaPSObject(maobject)); return; } else if (this.AttributeValuePairs != null) { DBQueryGroup group = new DBQueryGroup(GroupOperator.All); foreach (object key in this.AttributeValuePairs.Keys) { DBQueryByValue query = new DBQueryByValue(ActiveConfig.DB.GetAttribute((string)key), ValueOperator.Equals, this.AttributeValuePairs[key]); group.AddChildQueryObjects(query); } IList <MAObjectHologram> results = ActiveConfig.DB.GetMAObjectsFromDBQuery(group).ToList(); if (results.Count == 0) { throw new NotFoundException(); } else if (results.Count > 1) { throw new InvalidOperationException("More than one object matched the given criteria. Use Get-AcmaObjects for returning multiple results"); } else { this.WriteObject(new AcmaPSObject(results.First())); return; } } else { DBQueryByValue query = new DBQueryByValue(ActiveConfig.DB.GetAttribute(this.AttributeName), ValueOperator.Equals, this.AttributeValue); IList <MAObjectHologram> results = ActiveConfig.DB.GetMAObjectsFromDBQuery(query).ToList(); if (results.Count == 0) { throw new NotFoundException(); } else if (results.Count > 1) { throw new InvalidOperationException("More than one object matched the given criteria. Use Get-AcmaObjects for returning multiple results"); } else { this.WriteObject(new AcmaPSObject(results.First())); return; } } }