Exemplo n.º 1
0
        public async Task <MedicineSchedule> EditAsync(MedicineSchedule medicineSchedule)
        {
            _context.MedicineSchedules.Update(medicineSchedule);
            await _context.SaveChangesAsync();

            return(medicineSchedule);
        }
        public async Task DeleteAsync(Guid id)
        {
            MedicineSchedule medicineSchedule = await _medicineScheduleRepo.GetByIdAsync(id);

            if (medicineSchedule == null)
            {
                throw new ApiException("Medicine schedule not found!");
            }

            await _medicineScheduleRepo.DeleteAsync(medicineSchedule);
        }
Exemplo n.º 3
0
        public async Task EditAllBasedOnMedicineScheduleAsync(MedicineSchedule medicineSchedule)
        {
            IEnumerable <FoodSchedule> foodSchedules = await _foodScheduleRepo.GetAllByMedicineScheduleIdAsync(medicineSchedule.Id);

            if (!foodSchedules.Any())
            {
                throw new ApiException("Food schedules not found!");
            }

            FoodSchedule foodScheduleFirst = foodSchedules.FirstOrDefault();

            await _foodScheduleRepo.DeleteAllAsync(foodSchedules);

            IEnumerable <MedicineSchedule> medicineSchedules = new List <MedicineSchedule>()
            {
                medicineSchedule
            };

            await AddAsync(foodScheduleFirst, medicineSchedules);
        }
        public async Task <MedicineSchedule> EditAsync(MedicineSchedule medicineSchedule)
        {
            MedicineSchedule medicineScheduleOld = await _medicineScheduleRepo.GetByIdAsync(medicineSchedule.Id);

            if (medicineScheduleOld == null)
            {
                throw new ApiException("Medicine schedule not found!");
            }

            IEnumerable <MedicineSchedule> existingMedicineSchedules = (await _medicineScheduleRepo.GetAllByUserIdAndMedicineIdAsync
                                                                            (medicineSchedule.UserId, medicineSchedule.MedicineId))
                                                                       .Where(ms => ms.EndDate.Date >= DateTime.UtcNow.Date).Where(ms => ms.Id != medicineSchedule.Id);

            if (existingMedicineSchedules.Any(ms => DoesMedicineScheduleOverlap(medicineSchedule, ms)))
            {
                throw new ApiException($"Medicine schedules for {medicineScheduleOld.Medicine.Name} overlap!", 400);
            }

            MedicineSchedule medicineScheduleNew = await _medicineScheduleRepo.EditAsync(medicineSchedule);

            await _foodScheduleService.EditAllBasedOnMedicineScheduleAsync(medicineScheduleNew);

            return(medicineScheduleNew);
        }
Exemplo n.º 5
0
 public async Task DeleteAsync(MedicineSchedule medicineSchedule)
 {
     _context.MedicineSchedules.Remove(medicineSchedule);
     await _context.SaveChangesAsync();
 }
 private bool DoesMedicineScheduleOverlap(MedicineSchedule ms1, MedicineSchedule ms2)
 {
     return(ms1.MedicineId == ms2.MedicineId &&
            ms1.StartDate <= ms2.EndDate &&
            ms1.EndDate >= ms2.StartDate);
 }