From 6fd05ab6beb10a7dcd4dc74329e45a7dbef9a3c6 Mon Sep 17 00:00:00 2001 From: Shannon Date: Fri, 18 Oct 2013 16:23:33 +1100 Subject: [PATCH] Listens to new member events for cache refreshing --- src/Umbraco.Tests/ObjectExtensionsTests.cs | 8 +++++--- .../Cache/CacheRefresherEventHandler.cs | 20 +++++++++++++++++++ 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Tests/ObjectExtensionsTests.cs b/src/Umbraco.Tests/ObjectExtensionsTests.cs index e4f456bec8..f42f2445c2 100644 --- a/src/Umbraco.Tests/ObjectExtensionsTests.cs +++ b/src/Umbraco.Tests/ObjectExtensionsTests.cs @@ -137,7 +137,7 @@ namespace Umbraco.Tests var obj = new MyTestObject(); var result = obj.TryConvertTo(); - Assert.AreEqual(obj, result); + Assert.AreEqual(obj, result.Result); } private CultureInfo savedCulture; @@ -145,7 +145,8 @@ namespace Umbraco.Tests /// /// Run once before each test in derived test fixtures. /// - public override void TestSetup() + [SetUp] + public void TestSetup() { savedCulture = Thread.CurrentThread.CurrentCulture; Thread.CurrentThread.CurrentCulture = new CultureInfo("en-GB"); // make sure the dates parse correctly @@ -155,7 +156,8 @@ namespace Umbraco.Tests /// /// Run once after each test in derived test fixtures. /// - public override void TestTearDown() + [TearDown] + public void TestTearDown() { Thread.CurrentThread.CurrentCulture = savedCulture; return; diff --git a/src/Umbraco.Web/Cache/CacheRefresherEventHandler.cs b/src/Umbraco.Web/Cache/CacheRefresherEventHandler.cs index f8e45bfff0..3ff80a8b17 100644 --- a/src/Umbraco.Web/Cache/CacheRefresherEventHandler.cs +++ b/src/Umbraco.Web/Cache/CacheRefresherEventHandler.cs @@ -114,8 +114,11 @@ namespace Umbraco.Web.Cache //Bind to member events + //TODO: Remove the legacy event handlers once we proxy the legacy members stuff through the new services Member.AfterSave += MemberAfterSave; Member.BeforeDelete += MemberBeforeDelete; + MemberService.Saved += MemberService_Saved; + MemberService.Deleting += MemberService_Deleting; //Bind to media events @@ -539,6 +542,23 @@ namespace Umbraco.Web.Cache #endregion #region Member event handlers + + static void MemberService_Saved(IMemberService sender, Core.Events.SaveEventArgs e) + { + foreach (var m in e.SavedEntities) + { + DistributedCache.Instance.RefreshMemberCache(m.Id); + } + } + + static void MemberService_Deleting(IMemberService sender, Core.Events.DeleteEventArgs e) + { + foreach (var m in e.DeletedEntities) + { + DistributedCache.Instance.RemoveMemberCache(m.Id); + } + } + static void MemberBeforeDelete(Member sender, DeleteEventArgs e) { DistributedCache.Instance.RemoveMemberCache(sender.Id);