public async Task <ListResponse <DTOs.GridElment> > GetRecordsByCategory(string userId, string categoryId, int skip, int take)
        {
            string ownerId = currentAuthenticationContext.CurrentUser;

            List <DTOs.GridElment> gridElements = new List <DTOs.GridElment>();

            List <Mdls.Milestone> milestones = await milestoneRepository.GetByCategory(userId, categoryId, skip, take);

            long count = await milestoneRepository.GetTotalByCategory(userId, categoryId);

            List <Task <DTOs.GridElment> > gdelments = new List <Task <DTOs.GridElment> >();

            foreach (Mdls.Milestone milestone in milestones)
            {
                gdelments.Add(ResolveGridElement(milestone, ownerId));
            }

            while (gdelments.Count > 0)
            {
                Task <DTOs.GridElment> finishTask = await Task.WhenAny(gdelments.ToArray());

                gdelments.Remove(finishTask);

                gridElements.Add(finishTask.Result);
            }


            return(new ListResponse <DTOs.GridElment>
            {
                Count = count,
                Result = gridElements.OrderByDescending(k => k.Milestone.CreatedDate).ToList <DTOs.GridElment>()
            });
        }