/// <summary> /// Safely adds a key to the recently viewed collection list. /// </summary> /// <param name="recent"> /// The recent. /// </param> /// <param name="key"> /// The key. /// </param> /// <param name="siteAlias"> /// The site alias. /// </param> private static void AddKey(this RecentlyViewed recent, Guid key, string siteAlias = "ChairOffice") { const int count = 6; var keys = recent.Keys.ToList(); if (recent.Keys.Count() >= count) { keys.ToList().RemoveAt(0); } if (!keys.Contains(key)) { keys.Add(key); } recent.Keys = keys; }
/// <summary> /// Serializes the keys to a CSV list for cookie storage. /// </summary> /// <param name="recent"> /// The recent. /// </param> /// <param name="context"> /// The <see cref="ICustomerContext"/>. /// </param> internal static void Store(this RecentlyViewed recent, ICustomerContext context) { context.SetValue("rviewed", string.Join(",", recent.Keys)); }