Untitled

 avatar
unknown
csharp
a year ago
1.1 kB
15
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