예제 #1
0
        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));
        }
예제 #2
0
        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)
            });
        }
예제 #3
0
        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);
        }