public async Task <IActionResult> Procitano([FromBody] StringModel model) { ApplicationUser user = await _userManager.GetUserAsync(HttpContext.User); Guid idRazg; var flag = Guid.TryParse(model.Value, out idRazg); if (flag == false) { return(BadRequest()); } KorisnikUrazgovoru k = _ctx.KorisnikUrazgovoru.Where(k => k.IdKorisnik == user.Id && k.IdRazgovor == idRazg).SingleOrDefault(); if (k == null) { return(NotFound()); } k.Procitano = true; _ctx.SaveChanges(); var neprocitane = _ctx.Razgovor.Where(r => r.KorisnikUrazgovoru.Where(k => k.IdKorisnik == user.Id && k.Procitano == false).Count() > 0).Select(r => r.Id.GetHashCode()).ToList(); await _hubContext.Clients.User(user.Id.ToString()).SendAsync("Neprocitane", neprocitane); var m = new StringModel { Value = "Ok" }; return(Ok(m)); }
public async Task <IActionResult> Index(IndexViewModel model) { ApplicationUser user = await _userManager.GetUserAsync(HttpContext.User); bool mod = isMod(user.Id); if (!mod) { return(RedirectToAction("Prava", "Zbor")); } if (model.Novi.Naziv.Trim().Equals("")) { ModelState.AddModelError("Naziv", "Naziv je obavezan"); } if (model.Novi.Opis.Trim().Equals("")) { ModelState.AddModelError("Opis", "Opis je obavezan"); } if (_ctx.Forum.Where(f => f.Naziv.Equals(model.Novi.Naziv)).SingleOrDefault() != null) { ModelState.AddModelError("Opis", "Podforum ovog naziva već postoji."); } if (ModelState.IsValid) { model.Novi.Id = Guid.NewGuid(); _ctx.Forum.Add(model.Novi); _ctx.SaveChanges(); return(RedirectToAction("Index")); } model.KategorijaForuma = _ctx.KategorijaForuma.Include(k => k.Forum).ThenInclude(f => f.Tema).OrderBy(k => k.Redoslijed).ToList(); return(View(model)); }
public async Task <IActionResult> Uredi([FromBody] PretragaModel model) { ApplicationUser user = await _userManager.GetUserAsync(HttpContext.User); _ctx.Korisnik.Find(user.Id).Opis = model.Tekst; _ctx.SaveChanges(); return(Ok()); }
public async Task Procitano(Guid idRazg) { var user = new { Id = Guid.Parse(Context.User.Claims.First(i => i.Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier").Value) }; KorisnikUrazgovoru k = _ctx.KorisnikUrazgovoru.Where(k => k.IdKorisnik == user.Id && k.IdRazgovor == idRazg).SingleOrDefault(); k.Procitano = true; _ctx.SaveChanges(); await NeprocitanePoruke(); await Clients.User(user.Id.ToString()).SendAsync("ProcitanaPoruka", idRazg); }
public async Task <IActionResult> RegisterApi([FromBody] RegisterViewModel model) { if (ModelState.IsValid) { var user = new ApplicationUser { UserName = model.Email, Email = model.Email }; var result = await _userManager.CreateAsync(user, model.Password); if (result.Succeeded) { _logger.LogInformation("User created a new account with password."); //var code = await _userManager.GenerateEmailConfirmationTokenAsync(user); //var callbackUrl = Url.EmailConfirmationLink(user.Id, code, Request.Scheme); //await _emailSender.SendEmailConfirmationAsync(model.Email, callbackUrl); //await _signInManager.SignInAsync(user, isPersistent: false); _logger.LogInformation("User created a new account with password."); Korisnik k = new Korisnik(); k.Id = user.Id; k.Ime = model.Ime; k.Prezime = model.Prezime; k.Opis = model.Opis; k.IdSlika = Guid.Empty; k.DatumRodjenja = Convert.ToDateTime(model.DatumRodjenja); _ctx.Korisnik.Add(k); _ctx.SaveChanges(); return(Ok()); } AddErrors(result); } var poruke = ""; foreach (var modelState in ModelState.Values) { foreach (var error in modelState.Errors) { poruke += error.ErrorMessage + "\n"; } } // If we got this far, something failed, redisplay form return(BadRequest(poruke)); }
public async Task <ApplicationUser> Authenticate(string username, string password) { var user = await _userManager.FindByNameAsync(username); var valid = await _userManager.CheckPasswordAsync(user, password); // return null if user not found if (!valid) { return(null); } // authentication successful so generate jwt token var tokenHandler = new JwtSecurityTokenHandler(); var key = Encoding.ASCII.GetBytes(_appSettings.Secret); var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(new Claim[] { new Claim(ClaimTypes.Name, username), new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()) }), Expires = DateTime.UtcNow.AddDays(7), SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature) }; var token = tokenHandler.CreateToken(tokenDescriptor); user.Token = tokenHandler.WriteToken(token); await _userManager.UpdateAsync(user); _ctx.SaveChanges(); return(user); }
public async Task <IActionResult> Objavi([FromBody] StringModel model) { ApplicationUser user = await _userManager.GetUserAsync(HttpContext.User); Guid idRep; var flag = Guid.TryParse(model.Value, out idRep); if (flag == false) { return(BadRequest()); } //provjera usera bla bla var d = _ctx.RepozitorijKorisnik.Find(idRep); if (d == null) { return(NotFound()); } if (d.IdKorisnik != user.Id) { return(Forbid()); } d.Privatno = false; _ctx.SaveChanges(); var m = new StringModel { Value = "Ok" }; return(Ok(m)); }