using System;
using System.Linq;
using Umbraco.Web.Models;

namespace Umbraco.Web.Dynamics
{
    internal static class ExtensionMethods
    {
        

        public static DynamicPublishedContentList Random(this DynamicPublishedContentList all, int min, int max)
        {
            //get a random number generator
            Random r = new Random();
            //choose the number of elements to be returned between Min and Max
            int Number = r.Next(min, max);
            //Call the other method
            return Random(all, Number);
        }
        public static DynamicPublishedContentList Random(this DynamicPublishedContentList all, int max)
        {
            //Randomly order the items in the set by a Guid, Take the correct number, and return this wrapped in a new DynamicNodeList
            return new DynamicPublishedContentList(all.Items.OrderBy(x => Guid.NewGuid()).Take(max));
        }

        public static DynamicPublishedContent Random(this DynamicPublishedContentList all)
        {
            return all.Items.OrderBy(x => Guid.NewGuid()).First();
        }

    }
}
