Get dynamic modul entries in random order
I would like to have a random order of content from my dynamic module.
.OrderBy(X => random.next())
.OrderBy(x => Guid.NewGuid())
dont seem to be working.
Markus
public IQueryable<Telerik.Sitefinity.DynamicModules.Model.DynamicContent> GetDataItems() DynamicModuleManager dynamicModuleManager = DynamicModuleManager.GetManager(); Type videoType = TypeResolutionService.ResolveType("Telerik.Sitefinity.DynamicTypes.Model.VideoverwaltungHomepage.Video"); Random random = new Random(); // Fetch a collection of "live" and "visible" video items. var myCollection = dynamicModuleManager.GetDataItems(videoType) .Where(i => i.Status == Telerik.Sitefinity.GenericContent.Model.ContentLifecycleStatus.Live && i.Visible == true); // .Where(i => i.Status == Telerik.Sitefinity.GenericContent.Model.ContentLifecycleStatus.Live && i.Visible == true).OrderBy(x => random.Next()); // .Where(i => i.Status == Telerik.Sitefinity.GenericContent.Model.ContentLifecycleStatus.Live && i.Visible == true).OrderBy(x => Guid.NewGuid()) ; // Literal1.Text += "Collection count: " + myCollection.Count().ToString() + "<br />"; return myCollection; Hi Markus,
Thank you for contacting Sitefinity Support team.
I created a test page where I displayed the items in the way they come from the query and randomized and it seems to work. I just added .AsEnumerable before Ordering them.
Please review the code below:
StringBuilder sb = new StringBuilder();StringBuilder sb1 = new StringBuilder(); var mycollection1 = manager.GetDataItems(type).Where(i => i.GetValue<string>("Title").Contains("t")); foreach (var item in mycollection1) sb.Append(String.Format("0 - Status - 1", item.Id, item.Status)); var orderedCollection = manager.GetDataItems(type).Where(i => i.GetValue<string>("Title").Contains("t")).AsEnumerable().OrderBy(x => Guid.NewGuid()); foreach (var item in orderedCollection) sb1.Append(String.Format("0 - Status - 1", item.Id, item.Status)); this.Label1.Text = sb.ToString(); this.Label2.Text = sb1.ToString();Dear Georgi
Thank's for your feedback. Its working like this.
Markus
PS: If I cache the page in SF it would load a different order for each browser/client but reload of course did not bring new order. Disabling page cache would make it load different order every time.