public async Task <SastojakDTO> AzurirajSastojak(string idRecepta, string idNamirnice, SastojakDTO sastojakDTO) { Recept recept = await _receptiRepozitorijum.PronadjiJedan(idRecepta); List <Sastojak> sastojci = await _sastojciRepozitorijum.PronadjiSve("idNamirnice", idNamirnice, false, 1, 1); Sastojak sastojak = sastojci.FirstOrDefault(); sastojak = _maper.Map <SastojakDTO, Sastojak>(sastojakDTO, sastojak); sastojak.DatumAzuriranja = DateTime.UtcNow; sastojak = await _sastojciRepozitorijum.Azuriraj(sastojak); return(_maper.Map <SastojakDTO>(sastojak)); }
private async Task <NutritivneVrednostiDTO> IzracunajNutritivneVrednosti(List <Sastojak> sastojci) { if (sastojci.Count == 0) { return(new NutritivneVrednostiDTO()); } List <string> idNamirnica = sastojci.Select(x => x.IdNamirnice).ToList(); List <Namirnica> namirnice = await _namirniceRepozitorijum.PronadjiSve("id", idNamirnica, 1, int.MaxValue); IEnumerable <NutritivneVrednostiDTO> nutritivneVrednostiPoNamirnicama = from s in sastojci join n in namirnice on s.IdNamirnice equals n.Id select new NutritivneVrednostiDTO { Kalorije = ((decimal)s.KolicinaUGramima / 100) * n.Kalorije, Proteini = ((decimal)s.KolicinaUGramima / 100) * n.Proteini, Seceri = ((decimal)s.KolicinaUGramima / 100) * n.Seceri, Masti = ((decimal)s.KolicinaUGramima / 100) * n.Masti, ZasiceneMasti = ((decimal)s.KolicinaUGramima / 100) * n.ZasiceneMasti, Vlakna = ((decimal)s.KolicinaUGramima / 100) * n.Vlakna, }; return(new NutritivneVrednostiDTO { Kalorije = nutritivneVrednostiPoNamirnicama.Sum(x => x.Kalorije), Proteini = nutritivneVrednostiPoNamirnicama.Sum(x => x.Proteini), Seceri = nutritivneVrednostiPoNamirnicama.Sum(x => x.Seceri), Masti = nutritivneVrednostiPoNamirnicama.Sum(x => x.Masti), ZasiceneMasti = nutritivneVrednostiPoNamirnicama.Sum(x => x.ZasiceneMasti), Vlakna = nutritivneVrednostiPoNamirnicama.Sum(x => x.Vlakna) }); }
public async Task <ReceptDTO> PronadjiJedan(string id) { Recept recept = await _receptiRepozitorijum.PronadjiJedan(id); List <Sastojak> sastojci = await _sastojciRepozitorijum.PronadjiSve("idRecepta", recept.Id, false, 1, int.MaxValue); List <KorakPripreme> koraciPripreme = await _koraciPripremeRepozitorijum.PronadjiSve("idRecepta", recept.Id, false, 1, int.MaxValue); ReceptDTO receptDTO = _maper.Map <ReceptDTO>(recept); receptDTO.Sastojci = _maper.Map <List <SastojakDTO> >(sastojci); receptDTO.KoraciPripreme = _maper.Map <List <KorakPripremeDTO> >(koraciPripreme); receptDTO.NutritivneVrednosti = await IzracunajNutritivneVrednosti(sastojci); return(receptDTO); }