public void TestTrackableCollection_FirstOrDefault(bool track) { var acc = new Accumulator("test"); var a = new Simple("a"); var b = new Simple("b"); var c = new Simple("c"); var coll = new TrackableCollection <Simple>(acc, track) { a, b, c, b, c, b, b }; var first = coll.FirstOrDefault(); Assert.AreEqual(a, first); coll.Clear(); first = coll.FirstOrDefault(); Assert.IsNull(first); var coll2 = new TrackableCollection <int>(acc, track) { -1, 1, 2 }; var f = coll2.FirstOrDefault(); Assert.AreEqual(-1, f); coll2.Clear(); f = coll2.FirstOrDefault(); Assert.AreEqual(default(int), f); if (track) { Assert.AreEqual(12, acc.Records.Count); } else { Assert.AreEqual(0, acc.Records.Count); } }
/// <summary> /// Supprime un lien référentiel - Action. /// </summary> /// <typeparam name="TActionLink">Le type de lien référentiel - action.</typeparam> /// <param name="collection">La collection dans laquelle l'élément doit être supprimé.</param> /// <param name="referential">Le référentiel.</param> /// <returns><c>true</c> si la suppression a réussi.</returns> static bool Delete <TActionLink>(TrackableCollection <TActionLink> collection, IMultipleActionReferential referential, bool cancelChanges = false) where TActionLink : IReferentialActionLink, IObjectWithChangeTracker { TActionLink al = collection.FirstOrDefault(c => c.Referential == referential); if (al != null) { if (cancelChanges) { al.Referential.CancelChanges(); } collection.Remove(al); if (al.IsMarkedAsAdded) { al.MarkAsUnchanged(); } return(true); } return(false); }