Untitled

 avatar
unknown
plain_text
21 days ago
1.1 kB
3
Indexable
public async Task<ActionResult<List<string>>> DashboardUser()
{
    var senders = await _dashboardService.GetSenderList();

    // Filter and sort senders by last name and move it to the first position
    var filteredSenders = senders
        .Where(sender =>
            !string.IsNullOrWhiteSpace(sender)))
        .Select(sender =>
        {
            var nameParts = sender.Split(' ', StringSplitOptions.RemoveEmptyEntries);
            if (nameParts.Length > 1)
            {
                var lastName = nameParts.Last(); // Last name
                var firstName = string.Join(" ", nameParts.Take(nameParts.Length - 1)); // Rest as first name
                return new { OriginalSender = sender, ReformattedName = $"{lastName} {firstName}".Trim() };
            }
            return new { OriginalSender = sender, ReformattedName = sender.Trim() }; // No split, return as-is
        })
        .OrderBy(x => x.ReformattedName) // Sort by reformatted name
        .Select(x => x.OriginalSender) // Return original sender
        .ToList();

    return filteredSenders;
}
Leave a Comment