public async Task <Supplement> Update(Supplement supplement) { List <Task> tasks = new List <Task>(); var dietIdExists = _dietRepository.GetById(supplement.SuitableDietId); tasks.Add(dietIdExists); var idExists = _supplementRepository.GetById(supplement.Id); tasks.Add(idExists); var uniqueName = _supplementRepository.GetByName(supplement.Name); tasks.Add(uniqueName); await Task.WhenAll(tasks); if (dietIdExists.Result != null && idExists.Result != null) { if ((uniqueName.Result != null && uniqueName.Result.Id == supplement.Id) || uniqueName.Result == null) { return(await _supplementRepository.Update(supplement)); } else { throw new Exception(); } } else { throw new Exception(); } }
public async Task <Diet> GetDietById(int id) { return(await _dietRepository.GetById(id)); }