public NastavnikDodajVM Edit(int Id)
        {
            NastavnoOsoblje model = GetNastavnoOsoblje(Id);

            NastavnikDodajVM ulazniModel = new NastavnikDodajVM();

            ulazniModel = _mapper.Map <NastavnikDodajVM>(model);

            ulazniModel.DatumRodjenja      = model.PodaciRodjenje.DatumRodjenja;
            ulazniModel.OpcinaRodjenja     = model.PodaciRodjenje.OpćinaRođenja;
            ulazniModel.MjestoRodjenjaID   = model.PodaciRodjenje.GradID;
            ulazniModel.DrzavaRodjenjaID   = model.PodaciRodjenje.DrzavaID;
            ulazniModel.GradID             = model.PodaciStanovanje.GradID;
            ulazniModel.DrzavaID           = model.PodaciStanovanje.DrzavaID;
            ulazniModel.Adresa             = model.PodaciStanovanje.Adresa;
            ulazniModel.OpćinaPrebivalista = model.PodaciStanovanje.OpćinaPrebivalista;
            ulazniModel.BrojTelefona       = model.PodaciStanovanje.BrojTelefona;
            ulazniModel.Email                 = model.PodaciStanovanje.Email;
            ulazniModel.Drzavljanstvo         = model.OstaliPodaciNastavnoOsoblje.Drzavljanstvo;
            ulazniModel.Nacionalnost          = model.OstaliPodaciNastavnoOsoblje.Nacionalnost;
            ulazniModel.ZavrsenaSkola         = model.podaciZanimanje.ZavrsenaSkola;
            ulazniModel.Fakultet              = model.podaciZanimanje.ZavrsenFakultet;
            ulazniModel.ZavrsenoZanimanje     = model.podaciZanimanje.ZavrsenoZanimanje;
            ulazniModel.BrojDiplome           = model.podaciZanimanje.BrojDiplome;
            ulazniModel.StrucnaSpremaID       = model.podaciZanimanje.StrucnaSpremaID;
            ulazniModel.PosjedujeDrzavniIspit = model.podaciZanimanje.DrzavniIspit;

            PripremiCmbVMStavke(ulazniModel);
            return(ulazniModel);
        }
        public NastavnikDodajVM PripremiCmbVMStavke(NastavnikDodajVM ulazniModel)
        {
            ulazniModel.Gradovi = _context.grad
                                  .Select(x => new SelectListItem(x.NazivGrada, x.GradID.ToString())).ToList();
            ulazniModel.Drzave = _context.drzava
                                 .Select(x => new SelectListItem(x.NazivDrzave, x.DrzavaID.ToString())).ToList();
            ulazniModel.StrucneSpreme = _context.strucnaSprema
                                        .Select(x => new SelectListItem(x.Naziv, x.StrucnaSpremaID.ToString())).ToList();

            return(ulazniModel);
        }
        public NastavnoOsoblje Update(NastavnikDodajVM model)
        {
            NastavnoOsoblje osoblje = GetNastavnoOsoblje(model.NastavnoOsobljeID);

            osoblje.Ime          = model.Ime;
            osoblje.Prezime      = model.Prezime;
            osoblje.ImeRoditelja = model.ImeRoditelja;
            osoblje.Pol          = model.Pol;
            osoblje.JMBG         = model.JMBG;
            osoblje.PodaciRodjenje.DatumRodjenja              = model.DatumRodjenja;
            osoblje.PodaciRodjenje.OpćinaRođenja              = model.OpcinaRodjenja;
            osoblje.PodaciRodjenje.GradID                     = model.MjestoRodjenjaID;
            osoblje.PodaciRodjenje.DrzavaID                   = model.DrzavaRodjenjaID;
            osoblje.PodaciStanovanje.GradID                   = model.GradID;
            osoblje.PodaciStanovanje.DrzavaID                 = model.DrzavaRodjenjaID;
            osoblje.PodaciStanovanje.Adresa                   = model.Adresa;
            osoblje.PodaciStanovanje.OpćinaPrebivalista       = model.OpćinaPrebivalista;
            osoblje.PodaciStanovanje.BrojTelefona             = model.BrojTelefona;
            osoblje.PodaciStanovanje.Email                    = model.Email;
            osoblje.OstaliPodaciNastavnoOsoblje.Drzavljanstvo = model.Drzavljanstvo;
            osoblje.OstaliPodaciNastavnoOsoblje.Nacionalnost  = model.Nacionalnost;
            osoblje.podaciZanimanje.ZavrsenaSkola             = model.ZavrsenaSkola;
            osoblje.podaciZanimanje.ZavrsenFakultet           = model.Fakultet;
            osoblje.podaciZanimanje.ZavrsenoZanimanje         = model.ZavrsenoZanimanje;
            osoblje.podaciZanimanje.BrojDiplome               = model.BrojDiplome;
            osoblje.podaciZanimanje.StrucnaSpremaID           = model.StrucnaSpremaID;
            osoblje.podaciZanimanje.DrzavniIspit              = model.PosjedujeDrzavniIspit;
            if (model.Photo != null)
            {
                if (osoblje.PhotoPath != null)
                {
                    FileUploadDelete.Delete(_hostingEnvironment, "imageUpload", osoblje.PhotoPath);
                }
                osoblje.PhotoPath = FileUploadDelete.Upload(_hostingEnvironment, model.Photo, "imageUpload", model.PhotoPath);
            }

            _context.SaveChanges();
            return(osoblje);
        }
        public NastavnoOsoblje Add(NastavnikDodajVM model)
        {
            PodaciRodjenje podaciRodjenje = new PodaciRodjenje
            {
                DatumRodjenja = model.DatumRodjenja,
                OpćinaRođenja = model.OpcinaRodjenja,
                GradID        = model.MjestoRodjenjaID,
                DrzavaID      = model.DrzavaRodjenjaID
            };

            _context.podaciRodjenje.Add(podaciRodjenje);

            PodaciStanovanje podaciStanovanje = new PodaciStanovanje
            {
                GradID             = model.GradID,
                DrzavaID           = model.DrzavaID,
                OpćinaPrebivalista = model.OpćinaPrebivalista,
                Adresa             = model.Adresa,
                BrojTelefona       = model.BrojTelefona,
                Email = model.Email
            };

            _context.podaciStanovanje.Add(podaciStanovanje);

            OstaliPodaciNastavnoOsoblje ostaliPodaci = new OstaliPodaciNastavnoOsoblje
            {
                Drzavljanstvo = model.Drzavljanstvo,
                Nacionalnost  = model.Nacionalnost
            };

            _context.ostaliPodaciNastavnoOsoblje.Add(ostaliPodaci);

            PodaciZanimanje podaciZanimanje = new PodaciZanimanje
            {
                ZavrsenaSkola     = model.ZavrsenaSkola,
                ZavrsenFakultet   = model.Fakultet,
                ZavrsenoZanimanje = model.ZavrsenoZanimanje,
                BrojDiplome       = model.BrojDiplome,
                StrucnaSpremaID   = model.StrucnaSpremaID,
                DrzavniIspit      = model.PosjedujeDrzavniIspit
            };

            _context.podaciZanimanje.Add(podaciZanimanje);

            Login log = new Login
            {
                Password = Guid.NewGuid().ToString().Substring(0, 6)
            };

            if (_context.login.Where(x => x.Username == model.Ime.ToLower() + "." + model.Prezime.ToLower()).SingleOrDefault() == null)
            {
                log.Username = model.Ime.ToLower() + "." + model.Prezime.ToLower();
            }
            else
            {
                log.Username = model.Prezime.ToLower() + "." + model.Ime.ToLower();
            }

            _context.login.Add(log);

            NastavnoOsoblje nastavnoOsoblje = new NastavnoOsoblje
            {
                Ime                         = model.Ime,
                ImeRoditelja                = model.ImeRoditelja,
                Prezime                     = model.Prezime,
                Pol                         = model.Pol,
                JMBG                        = model.JMBG,
                PodaciRodjenje              = podaciRodjenje,
                PodaciStanovanje            = podaciStanovanje,
                OstaliPodaciNastavnoOsoblje = ostaliPodaci,
                podaciZanimanje             = podaciZanimanje,
                login                       = log,
                PhotoPath                   = FileUploadDelete.Upload(_hostingEnvironment, model.Photo, "imageUpload")
            };

            _context.nastavnoOsoblje.Add(nastavnoOsoblje);
            _context.SaveChanges();

            //MailSend.Send(_smtpConfig, nastavnoOsoblje.Ime + " " + nastavnoOsoblje.Prezime, "*****@*****.**",
            //    "Dodani ste kao korisnik aplikacije.\nVaši login podaci: \nUsername: "******"\nPassword: " + log.Password);

            return(nastavnoOsoblje);
        }