mertamu
mertamu

Reputation: 43

Umbraco Forms - How to display the last 5 records

I would like to display records from an Umbraco forms on a page. So far, I managed to display:

How do I limit it to display only 5 newest records (where "Display my name" value is TRUE)?

My codes below:

<ul id="formData">
    @{int i = 0;}	
    @foreach (dynamic record in Library.GetApprovedRecordsFromPage(@CurrentPage.Id).OrderBy("Created descending"))
    {		
        if (@record.GetField("Display my name").Values[0].ToString() == "True")
        {
            <li>								
                Name: @record.GetField("Name").Values[0]<br />
                Email: @record.GetField("Email").Values[0]<br />
                Display my name: @record.GetField("Display my name").Values[0]<br />	
                Created: @record.Created.ToString("dd MMMM yyy")<br />
            </li>
        }
        i++;	
    }					
</ul>
<h4>Total data: @i</h4>

Upvotes: 0

Views: 590

Answers (2)

Oleksandr Skrypnyk
Oleksandr Skrypnyk

Reputation: 394

I would recommend you to use this code for getting records:

@{
    using (var formStorage = new FormStorage())
    {
        using (var recordStorage = new RecordStorage())
        {
            var form = formStorage.GetForm(Guid.Parse("ede58fd2-9eff-4f88-a5d6-053042983681"));
            var records = recordStorage.GetAllRecords(form).Where(x => x.UmbracoPageId == Model.Content.Id && x.State == FormState.Approved).Where(x => x.GetRecordField("Display my name").Equals("True")).OrderByDescending(x => x.Created).ToList();
        }
    }
}

Upvotes: 0

Jannik Anker
Jannik Anker

Reputation: 3425

You might be able to put the property value check into a .Where(...)? So

.Where(x => x.GetField("Display my name").Values[0].ToString() == "True").OrderBy(whatevs).Take(5)

Upvotes: 1

Related Questions