public void DoWork(IRequest request)
        {
            Feed<ResourceFeedEntry> feed = new Feed<ResourceFeedEntry>();
            feed.Title = "Available Resources";

            Dictionary<SupportedResourceKinds, Type> resourcePayloadTypes = ResourceKindHelpers.GetAllResourcePayloadTypes();

            string resourceName;
            string resourceDescription;
            string resourceLink;

            foreach (SupportedResourceKinds resKind in  resourcePayloadTypes.Keys)
            {
                Type resourceType = resourcePayloadTypes[resKind];
                ResourceDescriptionAttribute resourceDescriptionAttr;

                if (ReflectionHelpers.TryGetSingleCustomAttribute<ResourceDescriptionAttribute>(resourceType, out resourceDescriptionAttr))
                {
                    if (resourceDescriptionAttr.CanGet)
                    {
                        resourceName = resourceDescriptionAttr.Name;
                        resourceDescription = resourceDescriptionAttr.Description;
                        resourceLink = string.Format("{0}{1}/", _requestContext.DatasetLink, resKind.ToString());

                        ResourceFeedEntry entry = new ResourceFeedEntry();
                        entry.Id = resourceLink;
                        entry.Name = resourceName;
                        entry.Description = resourceDescription;
                        entry.Link = resourceLink;
                        entry.Updated = DateTime.Now;
                        entry.Summary = resourceDescription;
                        entry.Source = resourceDescription;
                        FeedLink feedentryLink = new FeedLink(resourceLink, LinkType.Self, MediaType.Atom, entry.Description);
                        entry.Links.Add(feedentryLink);

                        feedentryLink = new FeedLink(resourceLink, LinkType.Related, MediaType.Atom, entry.Description);
                        entry.Links.Add(feedentryLink);

                        feed.Entries.Add(entry);
                    }
                }
                else
                {
                    // only in debug mode!
                    //this.ThrowResourceDescriptionAttributeMissing(resourceType);
                }
            }

            request.Response.Feed = feed;
        }