public async Task <ActionResult> AddOsoblje([FromBody] OsobljeInsertModel model) { try { if (ModelState.IsValid) { var item = await _userService.AddOsoblje(model); return(Ok(item)); } else { return(BadRequest(model)); } } catch (Exception ex) { return(BadRequest(new ApiException(ex.Message, System.Net.HttpStatusCode.BadRequest))); } }
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); } }