public async Task <SredstvaDto> PostSredstva(PostSredstvaDto postSredstva)
        {
            var userName = _httpContextAccessor.HttpContext.User.FindFirst(ClaimTypes.NameIdentifier)?.Value;
            var id       = _context.Korisnici.Where(k => k.UserName == userName)
                           .FirstOrDefault().Id;

            var valuta = await _context.Valute
                         .Where(v => v.Naziv == postSredstva.Valuta)
                         .FirstOrDefaultAsync();

            if (valuta == null)
            {
                throw new Exception("Ne postoji tražena valuta, pokušajte ponovno. ");
            }

            var valutaId = valuta.ValutaId;

            var sredstvaaa = await _context.Sredstva
                             .Include(v => v.Valuta)
                             .Where(s => s.KorisnikId == id)
                             .ToListAsync();

            var duplaSredstva = sredstvaaa.Where(v => v.Valuta.Naziv == postSredstva.Valuta).FirstOrDefault();

            if (duplaSredstva != null)
            {
                throw new Exception("Već posjedujete sredstva u traženoj valuti. Molimo Vas ažurirajte iznos tražene valute.");
            }

            if (postSredstva.Iznos == 0)
            {
                throw new Exception("Uneseni iznos ne može biti 0");
            }

            var sredstva = new Sredstva
            {
                KorisnikId = id,
                ValutaId   = valutaId,
                Iznos      = postSredstva.Iznos
            };



            _context.Sredstva.Add(sredstva);

            await _context.SaveChangesAsync();

            var sredstvaToReturn = _mapper.Map <SredstvaDto>(sredstva);

            return(sredstvaToReturn);
        }
        public async Task <SredstvaDto> PutSredstva(PostSredstvaDto postSredstva)
        {
            var userName = _httpContextAccessor.HttpContext.User.FindFirst(ClaimTypes.NameIdentifier)?.Value;
            var id       = _context.Korisnici.Where(k => k.UserName == userName)
                           .FirstOrDefault().Id;

            var sredstvaKorisnika = await _context.Sredstva
                                    .Include(v => v.Valuta)
                                    .Where(k => k.KorisnikId == id)
                                    .ToListAsync();


            var sredstvoToPut = sredstvaKorisnika
                                .Where(v => v.Valuta.Naziv == postSredstva.Valuta)
                                .FirstOrDefault();

            var valutaId = sredstvoToPut.ValutaId;

            if (sredstvoToPut == null)
            {
                throw new Exception("Ne posjedujete sredstva u traženoj valuti");
            }

            if (postSredstva.Iznos == 0)
            {
                _context.Sredstva.Remove(sredstvoToPut);
                await _context.SaveChangesAsync();

                throw new Exception("Unesena valuta je izbrisana s popisa valuta koje posjedujete");
            }

            sredstvoToPut.SredstvaId = sredstvoToPut.SredstvaId;
            sredstvoToPut.KorisnikId = id;
            sredstvoToPut.ValutaId   = valutaId;
            sredstvoToPut.Iznos      = postSredstva.Iznos;

            _context.Update(sredstvoToPut);
            await _context.SaveChangesAsync();

            return(_mapper.Map <SredstvaDto>(sredstvoToPut));
        }
        public async Task <ActionResult <SredstvaDto> > PutSredstva([FromBody] PostSredstvaDto postSredstva)
        {
            var sredstvo = await _service.PutSredstva(postSredstva);

            return(Ok(sredstvo));
        }