public async Task <ActionResult <IEnumerable <Drug> > > GetAllDrugs() { var drugs = await _drugRepository.FindAll(); var drugDTOs = _mapper.Map <IList <DrugDTO> >(drugs); List <DrugDTO> lstDrugs = new List <DrugDTO>(); int DaysLeft = 0; foreach (var drug in drugDTOs) { // what time is it now? How many days passed? int diffDays = DateTime.Now.Subtract(drug.StartDate).Days; int NoPillsLeft = drug.NoPills - (diffDays * drug.DoseToTake); DaysLeft = drug.DoseToTake > 0? (NoPillsLeft / drug.DoseToTake) : 0; DateTime dateToEnd = DateTime.Now.AddDays(DaysLeft); drug.DateToEnd = dateToEnd; lstDrugs.Add(_mapper.Map <DrugDTO>(drug)); } List <DrugDTO> listSorted = lstDrugs; listSorted.Sort(delegate(DrugDTO x, DrugDTO y) { return(x.DateToEnd.CompareTo(y.DateToEnd)); }); return(Ok(listSorted)); }