예제 #1
0
        public async Task <EditValutaDto> PutValutaById(int id, PutValutaDto putValuta)
        {
            var valuta = await _context.Valute
                         .Where(v => v.ValutaId == id)
                         .FirstOrDefaultAsync();

            if (valuta == null)
            {
                throw new Exception("Tražena valuta nije pronađena, molimo pokušajte ponovno.");
            }

            var korisnik = await _userManager.FindByNameAsync(putValuta.UserName);


            var role = _context.UserRoles
                       .Where(u => u.UserId == korisnik.Id)
                       .FirstOrDefault();


            // tu treba napraviti da samo admin može, a ne i moderator
            if (role.RoleId == 3)
            {
                throw new Exception("Izabrani korisnik nije u funkciji admina i ne može biti ažurirati valutu.");
            }


            var httpClient = _httpClientFactory.CreateClient("valute");
            var url        = $"09a14a921f6de3a3c311a083/pair/HRK/{putValuta.Naziv}";
            var response   = await httpClient.GetAsync(url);

            var responseStream = await response.Content.ReadAsStreamAsync();

            var responseObject = await JsonSerializer.DeserializeAsync <KonverzijaValute>(responseStream);

            valuta.Naziv           = putValuta.Naziv;
            valuta.Tecaj           = responseObject.conversion_rate;
            valuta.KorisnikId      = korisnik.Id;
            valuta.AktivnoOd       = putValuta.AktivnoOd;
            valuta.AktivnoDo       = putValuta.AktivnoDo;
            valuta.DatumAzuriranja = DateTime.Now.Date;

            Update(valuta);

            await _context.SaveChangesAsync();

            return(_mapper.Map <EditValutaDto>(valuta));
        }
예제 #2
0
 public async Task <EditValutaDto> PutValutaById(int id, PutValutaDto putValuta)
 {
     return(await _service.PutValutaById(id, putValuta));
 }