private OsobljeModel MapUposlenikToOsobljeModel(Uposlenik model) { try { var returnModel = new OsobljeModel { Active = model.ApplicationUser.Active, DatumRodjenja = model.ApplicationUser.DatumRodjenja.Date, DatumZaposlenja = model.DatumZaposlenja.Date, Email = model.ApplicationUser.Email, Id = model.ApplicationUser.Id, Ime = model.ApplicationUser.Ime, JMBG = model.ApplicationUser.JMBG, OpcinaId = model.ApplicationUser.OpcinaId, OpcinaNaziv = model.ApplicationUser.Opcina.Naziv, Prezime = model.ApplicationUser.Prezime, Slika = model.ApplicationUser.Slika, Spol = model.ApplicationUser.Spol, UposlenikId = model.Id, Username = model.ApplicationUser.Username }; returnModel.Role = new List <RoleModel>(); foreach (var r in model.ApplicationUser.ApplicationUserRoles) { returnModel.Role.Add(new RoleModel { Id = r.RoleId, Naziv = r.Role.Naziv }); } return(returnModel); } 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); } }