public async Task <KlijentModel> AddKlijent(ApplicationUserInsertModel model) { try { if (model.Password != model.PasswordConfirm) { throw new Exception("Lozinke nisu iste."); } if (!(IsUsernameUnique(model.Username))) { throw new Exception("Username je već zauzet."); } var user = new ApplicationUser { Email = model.Email, PasswordSalt = UserAuthHelpers.GenerateSalt(), Username = model.Username, DatumRodjenja = model.DatumRodjenja, Ime = model.Ime, JMBG = model.JMBG, OpcinaId = model.OpcinaId, Prezime = model.Prezime, Spol = model.Spol, DatumRegistracije = DateTime.Now, Active = true }; if (model.Slika != null && model.Slika.Length > 0) { user.Slika = model.Slika; } user.PasswordHash = UserAuthHelpers.GenerateHash(user.PasswordSalt, model.Password); _context.ApplicationUser.Add(user); var roleKlijent = _context.Role.Where(r => r.Naziv == "Klijent").First(); _context.ApplicationUserRole.Add(new ApplicationUserRole { ApplicationUser = user, Role = roleKlijent }); var klijent = new Klijent { ApplicationUser = user }; _context.Klijent.Add(klijent); await _context.SaveChangesAsync(); var created = new KlijentModel { DatumRodjenja = user.DatumRodjenja, Email = user.Email, Id = user.Id, Ime = user.Ime, JMBG = user.JMBG, OpcinaId = user.OpcinaId, Prezime = user.Prezime, Spol = user.Spol, Slika = user.Slika, Username = user.Username, Role = new List <RoleModel> { new RoleModel { Id = roleKlijent.Id, Naziv = roleKlijent.Naziv } }, KlijentId = klijent.Id }; created.OpcinaNaziv = _context.Opcina .Find(created.OpcinaId) .Naziv; return(created); } catch (Exception ex) { throw new Exception(ex.Message); } }
public async Task <OsobljeModel> AddOsoblje(OsobljeInsertModel model) { try { if (model.Password != model.PasswordConfirm) { throw new Exception("Lozinke nisu iste."); } if (!(IsUsernameUnique(model.Username))) { throw new Exception("Username je već zauzet."); } var user = new ApplicationUser { Email = model.Email, PasswordSalt = UserAuthHelpers.GenerateSalt(), Slika = model.Slika, Username = model.Username, DatumRodjenja = model.DatumRodjenja, Ime = model.Ime, JMBG = model.JMBG, OpcinaId = model.OpcinaId, Prezime = model.Prezime, Spol = model.Spol, DatumRegistracije = DateTime.Now, Active = model.Active }; user.PasswordHash = UserAuthHelpers.GenerateHash(user.PasswordSalt, model.Password); _context.ApplicationUser.Add(user); foreach (var r in model.ApplicationUserRoles) { _context.ApplicationUserRole.Add(new ApplicationUserRole { ApplicationUser = user, RoleId = r.Id }); } var uposlenik = new Uposlenik { DatumZaposlenja = model.DatumZaposlenja, ApplicationUser = user }; _context.Uposlenik.Add(uposlenik); await _context.SaveChangesAsync(); var created = new OsobljeModel { DatumRodjenja = user.DatumRodjenja, DatumZaposlenja = uposlenik.DatumZaposlenja, Active = user.Active, Email = user.Email, Id = user.Id, Ime = user.Ime, JMBG = user.JMBG, OpcinaId = user.OpcinaId, Prezime = user.Prezime, Spol = user.Spol, UposlenikId = uposlenik.Id, Slika = user.Slika, Username = user.Username, Role = model.ApplicationUserRoles }; created.OpcinaNaziv = _context.Opcina .Find(created.OpcinaId) .Naziv; return(created); } catch (Exception ex) { throw new Exception(ex.Message); } }