public async Task <ListResponse <DTOs.GridElment> > GetRecords(int skip, int take) { string ownerId = currentAuthenticationContext.CurrentUser; ListResponse <DTOs.GridElment> gridElements = new ListResponse <DTOs.GridElment>(); List <DTOs.GridElment> items = new List <DTOs.GridElment>(); List <Task <DTOs.GridElment> > gdelments = new List <Task <DTOs.GridElment> >(); gridElements.Count = await milestoneRepository.GetTotal(); List <Mdls.Milestone> records = await milestoneRepository.Get(skip, take); foreach (Mdls.Milestone milestone in records) { gdelments.Add(ResolveGridElement(milestone, ownerId)); } while (gdelments.Count > 0) { Task <DTOs.GridElment> finishTask = await Task.WhenAny(gdelments.ToArray()); gdelments.Remove(finishTask); items.Add(finishTask.Result); } gridElements.Result = items.OrderByDescending(k => k.Milestone.CreatedDate).ToList <DTOs.GridElment>(); return(gridElements); }