public async Task <IActionResult> UrediProfil(int Id) { AuthenticationUrediProfilVM model = await _db.Users.Select(x => new AuthenticationUrediProfilVM { Id = x.Id, Email = x.Email, Ime = x.Ime, KorisnickoIme = x.UserName, Prezime = x.Prezime, Telefon = x.PhoneNumber }).FirstOrDefaultAsync(x => x.Id == Id); return(View(model)); }
public async Task <IActionResult> Snimi([FromBody] AuthenticationUrediProfilVM korisnik) { var k = await _db.Users.FirstOrDefaultAsync(x => x.Id == korisnik.Id); if (k == null) { return(NotFound()); } k.Ime = korisnik.Ime; k.Prezime = korisnik.Prezime; if (k.UserName != korisnik.KorisnickoIme) { string usernameError = ""; var izmjernaKorisnickogImena = await _userManager.SetUserNameAsync(k, korisnik.KorisnickoIme); if (!izmjernaKorisnickogImena.Succeeded) { usernameError = "Korisničko ime već postoji."; } if (!string.IsNullOrWhiteSpace(usernameError)) { return(BadRequest(usernameError)); } } if (k.Email != korisnik.Email) { var izmjenaEmaila = await _userManager.ChangeEmailAsync(k, korisnik.Email, await _userManager.GenerateChangeEmailTokenAsync(k, korisnik.Email)); if (!izmjenaEmaila.Succeeded) { string emailError = ""; foreach (var error in izmjenaEmaila.Errors) { if (error.Code == "InvalidEmail") { emailError = "Email netačnog formata."; } else if (error.Code == "DuplicateEmail") { emailError = "Email već postoji."; } } if (!string.IsNullOrWhiteSpace(emailError)) { return(BadRequest(emailError)); } } } if (k.PhoneNumber != korisnik.Telefon) { await _userManager.ChangePhoneNumberAsync(k, korisnik.Telefon, await _userManager.GenerateChangePhoneNumberTokenAsync(k, korisnik.Telefon)); } if (!string.IsNullOrWhiteSpace(korisnik.Lozinka)) { var promjenaLozinke = await _userManager.ResetPasswordAsync(k, await _userManager.GeneratePasswordResetTokenAsync(k), korisnik.Lozinka); if (!promjenaLozinke.Succeeded) { return(Ok("Lozinka mora sadržavati minimalno 6 karaktera, od čega minimalno jedno veliko slovo i jedan broj.")); } } await _db.SaveChangesAsync(); await _signInManager.SignOutAsync(); await _signInManager.SignInAsync(k, true); return(Ok()); }