Untitled
unknown
csharp
a year ago
1.1 kB
16
Indexable
private async Task SortRepetitiveEvents(List<OutageEventListItemDto> repetitiveOutages)
{
repetitiveOutages.Sort((o1, o2) =>
{
var v1 = o1.ParentEventId ?? int.MinValue;
var v2 = o2.ParentEventId ?? int.MinValue;
return v1 < v2 ? -1 : v1 == v2 ? 0 : 1;
});
int lastParentID = 0;
for (int outageIx = 0; outageIx < repetitiveOutages.Count; outageIx++)
{
if (repetitiveOutages[outageIx].ParentEventId != null && repetitiveOutages[outageIx].ParentEventId != lastParentID)
{
lastParentID = repetitiveOutages[outageIx].ParentEventId.Value;
var parent = await eventRepository.GetByIdAsync(lastParentID);
var parentDto = new OutageEventListItemDto { OutageEventID = parent.Id };
if (repetitiveOutages.Contains(parentDto))
repetitiveOutages.Remove(parentDto);
parentDto = CreateOutageEventListItemDto(parent);
repetitiveOutages.Insert(outageIx, parentDto);
}
}
}
Editor is loading...
Leave a Comment