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)); }
public async Task <EditValutaDto> PutValutaById(int id, PutValutaDto putValuta) { return(await _service.PutValutaById(id, putValuta)); }