public async Task <ActionResult> Register(RegisterViewModel model) { if (ModelState.IsValid) { var user = new ApplicationUser { UserName = model.UserEmail, Email = model.UserEmail, LockoutEnabled = false }; var result = await UserManager.CreateAsync(user, model.Password); if (result.Succeeded) { // ok user je kreiran, // sad snimi tvrtku i korisnika UserManager.AddToRole(user.Id, "Voditelj"); Kompanije company = new Kompanije { Naziv = model.Naziv, OIB = model.OIB, Adresa = model.Adresa, Mjesto = model.Mjesto, Telefon = model.Telefon, RegisterDate = DateTime.Now, ActivationDate = DateTime.Now, ExpirationDate = DateTime.Today.AddYears(1), Active = true }; _db.Kompanije.Add(company); int kompanijaId = await _db.SaveChangesAsync(); KompanijeUseri korisnik = new KompanijeUseri { Ime = model.Ime, Prezime = model.Prezime, CompanyId = company.Id, UserGuid = user.Id, MasterAcc = true, Active = true }; _db.KompanijeUseri.Add(korisnik); int uid = await _db.SaveChangesAsync(); await UserManager.AddClaimAsync(user.Id, new Claim("Cid", company.Id.ToString())); await UserManager.AddClaimAsync(user.Id, new Claim("Comp", company.Naziv)); //await UserManager.AddClaimAsync(model.Ime + " " + model.Prezime, new Claim("imePrezime", company.Naziv)); await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false); // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=320771 // Send an email with this link // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id); // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme); // await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>"); return(RedirectToAction("Index", "Home")); } AddErrors(result); } // If we got this far, something failed, redisplay form return(View(model)); }
public async Task <ActionResult> createAccForZgrada(int zgradaId) { try { var identity = (ClaimsIdentity)User.Identity; var companyId = Convert.ToInt32(identity.FindFirstValue("Cid")); if (await _db.Zgrade.FirstOrDefaultAsync(p => p.Id == zgradaId && p.CompanyId == companyId) != null) { var stanari = await _db.Zgrade_Stanari.Where(p => p.ZgradaId == zgradaId).ToListAsync(); foreach (var s in stanari.Where(p => p.UserGuid != "")) { var userKompanija = await _db.KompanijeUseri.FirstOrDefaultAsync(p => p.Stanarid == s.Id); if (userKompanija == null) { var user = new ApplicationUser { UserName = s.Email, Email = s.Email }; var pass = Membership.GeneratePassword(6, 0); var result = await UserManager.CreateAsync(user, pass); var company = await _db.Kompanije.FirstOrDefaultAsync(p => p.Id == companyId); if (result.Succeeded) { //await UserManager.AddClaimAsync(company.Id.ToString(), new Claim("Cid", company.Id.ToString())); //await UserManager.AddClaimAsync(company.Naziv, new Claim("Comp", company.Naziv)); //await UserManager.AddClaimAsync(s.Ime + " " + s.Prezime, new Claim("imePrezime", company.Naziv)); UserManager.AddToRole(user.Id, "Stanar"); var u = new KompanijeUseri { ZgradaId = zgradaId, CompanyId = company.Id, Stanarid = s.Id, MasterAcc = false, UserGuid = user.Id, Active = true }; _db.KompanijeUseri.Add(u); s.UserGuid = user.Id; s.Pass = pass; s.Active = true; } } } await _db.SaveChangesAsync(); return(new HttpStatusCodeResult(200)); } } catch (Exception ex) { return(new HttpStatusCodeResult(500)); } return(new HttpStatusCodeResult(500)); }
public async Task <ActionResult> editUser(KompanijeUseri user) { try { var identity = (ClaimsIdentity)User.Identity; var companyId = Convert.ToInt32(identity.FindFirstValue("Cid")); if (user.Id > 0) { if (companyId == user.CompanyId) { var target = await _db.KompanijeUseri.FirstOrDefaultAsync(p => p.Id == user.Id); target.Ime = user.Ime; target.Prezime = user.Prezime; target.Active = user.Active; ApplicationDbContext db = new ApplicationDbContext(); var dbUser = await db.Users.FirstOrDefaultAsync(p => p.Id == target.UserGuid); dbUser.Email = user.Email; await db.SaveChangesAsync(); await _db.SaveChangesAsync(); } } else { var newuser = new ApplicationUser { UserName = user.Email, Email = user.Email, LockoutEnabled = false }; ApplicationDbContext db = new ApplicationDbContext(); // 1. create instance of UserStore and pss in db context var userStore = new UserStore <ApplicationUser>(db); // 2. create instance of UserManager and pass in instance of UserStore we've just created var usermanager = new UserManager <ApplicationUser>(userStore); var result = usermanager.Create(newuser, user.Password); if (result.Succeeded) { KompanijeUseri u = new KompanijeUseri { Active = user.Active, CompanyId = companyId, Ime = user.Ime, Prezime = user.Prezime, Stanarid = null, MasterAcc = false, UserGuid = newuser.Id }; _db.KompanijeUseri.Add(u); await _db.SaveChangesAsync(); return(new HttpStatusCodeResult(200)); } else { return(new HttpStatusCodeResult(500)); } } return(new HttpStatusCodeResult(200)); } catch (Exception ex) { return(new HttpStatusCodeResult(500)); } }