示例#1
0
        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));
        }