volume_up

A critical vulnerability was discovered in React Server Components (Next.js). Our systems remain protected but we advise to update packages to newest version. Learn More

AI OnAI Off

Bug in VisitHandler?

I'm am using visithandler to count visit for two visitable entities, namely Entry and Blog. The following code is used for this...

VisitHandler.AddVisit(new EPiServer.Common.Visits.Visit(_blog, new UserAuthor(CurrentUser)));
VisitHandler.AddVisit(new EPiServer.Common.Visits.Visit(_entry, new UserAuthor(CurrentUser)));

When trying to receive Entry visits i also receive Blog visits and vice versa, this has to be a bug? I can't find anything in the bug list. The following code is used.

VisitableEntityCollection visitedItems = VisitHandler.GetVisitedItems(typeof(Entry), 1,
                1000, TimeSpan.MinValue, out totalItems, new VisitableEntitySortOrder(VisitableEntitySortField.NumVisits, SortingDirection.Descending))

#38943
Apr 26, 2010 10:50
Vote:

Hi,

This is a known issue which does not yet have a publicly released fix. You can get a hotfix through EPiServer Support.

We will look into why this is not in the bug list.

 

/Håkan

#38970
Apr 27, 2010 10:18

You can try this workaround - not very nice but seems to work well:

using System;
using System.Linq;
using EPiServer.Common.Visits;

namespace Utils
{
    public class VisitHandlerFix
    {
        private const int MaxItemCount = 10000;

        public static VisitableEntityCollection GetVisitedItems<T>(int page, int pageSize, TimeSpan explicitCacheExpiration, out int totalItems, params VisitableEntitySortOrder[] sortOrder)
        {
            // bugfix:
            VisitableEntityCollection everything = VisitHandler.GetVisitedItems(typeof(T), 1, MaxItemCount, explicitCacheExpiration, out totalItems, sortOrder);
            VisitableEntityCollection filtered = new VisitableEntityCollection(everything.OfType<T>().ToList());
            totalItems = filtered.Count;

            return new VisitableEntityCollection(filtered.Skip(pageSize * (page - 1)).Take(pageSize).ToList());
        }
    }
}

#42658
Aug 27, 2010 17:54
error This thread is locked and should be used for reference only. Please use the Legacy add-ons forum to open new discussions.
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.