public ActionResult DodavanjeBiografije(BiografijeKategorijeModel bdm)
        {
            try
            {
                bazaEntities dc = new bazaEntities();

                string ime = System.Web.HttpContext.Current.User.Identity.Name;
                var idKorisnika = dc.korisnici.Where(m => m.username == System.Web.HttpContext.Current.User.Identity.Name).Select(x => x.idkorisnici).FirstOrDefault();
                var posloprimac = dc.posloprimci.Where(x => x.idkorisnici == idKorisnika).FirstOrDefault();

                dc.biografije.Add(new biografije()
                {
                    datum_biografije = DateTime.Now,
                    idealan_posao = bdm.Biografije.idealan_posao,
                    idkategorije = bdm.idkategorije,
                    idposloprimac = posloprimac.idposloprimci,
                    kompetencije = bdm.Biografije.kompetencije,
                    radno_iskustvo = bdm.Biografije.radno_iskustvo,
                    zanimanje = bdm.Biografije.zanimanje
                });
                dc.SaveChanges();
                bdm = new BiografijeKategorijeModel();
                bdm.Kategorije = dc.kategorije.ToArray();
            }
            catch (Exception exception)
            {
                return View();
            }

            return View("DodavanjeBiografije", bdm);
        }
        public ActionResult Index()
        {
            if (System.Web.HttpContext.Current.User.Identity.IsAuthenticated)
            {
                string ime = System.Web.HttpContext.Current.User.Identity.Name;
                bazaEntities dc = new bazaEntities();
                var u =
                    dc.korisnici.Where(m => m.username == System.Web.HttpContext.Current.User.Identity.Name)
                        .FirstOrDefault();

                if (u.tip_korisnika == "admin")
                {
                    return RedirectToAction("Index", "Admin");
                }
                if (u.tip_korisnika == "poslodavac")
                {
                    return RedirectToAction("Index", "Poslodavac");
                }
                return RedirectToAction("Index", "Posloprimac");

            }
            else
            {
                return RedirectToAction("Login", "Account");

            }
        }
        public ActionResult DodavanjeBiografije()
        {
            BiografijeKategorijeModel dbm = new BiografijeKategorijeModel();
            bazaEntities dc = new bazaEntities();

            dbm.Kategorije = dc.kategorije.ToArray();
            return View("DodavanjeBiografije", dbm);
        }
        public System.Net.Http.HttpResponseMessage RegistracijaJson(korisnici korisnik)
        {
            Guid tmpGuid = Guid.NewGuid();
            var parametri = new Dictionary<string, object>{

                {"Username", korisnik.username},
                {"Password", korisnik.password},
                {"Email", korisnik.email},
                {"GUID", tmpGuid.ToString().ToLower()}
            };
            try
            {
                bazaEntities dc = new bazaEntities();
                dc.korisnici.Add(korisnik);
                korisnici u = dc.korisnici.Where(a => a.username == korisnik.username).FirstOrDefault();
                int ID = Convert.ToInt32(u.idkorisnici);
                korisnik.idkorisnici = ID;

                SendEmail("Potvrda Registracije", string.Format(@"
                Dobro došli na našu stranicu i čestitamo na uspješnoj registraciji.
                Da biste potvrdili registraciju, kliknite na link ispod:
                   http://www.nwt.somee.com/Account/PotvrdaRegistracijeJson/{0}?guid={1}", korisnik.idkorisnici, tmpGuid), korisnik.email);

                return new HttpResponseMessage()
                {
                    StatusCode = System.Net.HttpStatusCode.Created
                };
            }
            catch (Exception ex)
            {

                return new HttpResponseMessage()
                {
                    StatusCode = System.Net.HttpStatusCode.BadRequest,
                };
            }
        }
        private void PopulateOffersAndCategories(ViewOffersModel dbm)
        {
            try
            {
                bazaEntities be = new bazaEntities();
                var offersFromDb = be.oglasi.ToList();
                var offersVModel = new List<OfferModel>();
                if (offersFromDb != null && offersFromDb.Count != 0)
                {
                    foreach (var offer in offersFromDb)
                    {
                        OfferModel offerModel = new OfferModel
                        {
                            BrojPozicija = offer.broj_pozicija != null ? (int)offer.broj_pozicija : 0,
                            DatumObjave = offer.datum_objave != null ? offer.datum_objave.Value.ToShortDateString() : string.Empty,
                            DatumZavrsetka = offer.datum_zavrsetka != null ? offer.datum_zavrsetka.Value.ToShortDateString() : string.Empty,
                            IdKategorije = offer.idkategorije != null ? (int)offer.idkategorije : 0,
                            KontaktEmail = offer.kontakt_email,
                            NazivPozicije = offer.naziv_pozicije,
                            Spol = offer.spol,
                            TextOglasa = offer.text_oglasa,
                            TipOglasa = offer.tip_oglasa
                        };
                        if (offer.kategorije != null && !string.IsNullOrEmpty(offer.kategorije.naziv))
                            offerModel.NazivKategorije = offer.kategorije.naziv;

                        offersVModel.Add(offerModel);
                    }
                    dbm.offers = offersVModel;
                }
                var categoriesFromDb = be.kategorije.ToList();
                dbm.Categories = new List<string>();
                foreach (var cat in categoriesFromDb)
                    dbm.Categories.Add(cat.naziv);
            }
            catch (Exception e)
            {

            }
        }
        public ActionResult RegisterEmployer(RegisterEmployerModel model)
        {
            if (ModelState.IsValid)
            {
                Guid tmpGuid = Guid.NewGuid();
                try
                {
                    bazaEntities dc = new bazaEntities();
                    korisnici novikorisnik = new korisnici
                    {
                        aktivan = false,
                        email = model.Email,
                        username = model.UserName,
                        password = model.Password,
                        GUID = tmpGuid.ToString(),
                        tip_korisnika = "poslodavac"
                    };
                    dc.korisnici.Add(novikorisnik);
                    dc.SaveChanges();

                    lokacije lokacija = new lokacije()
                    {
                        drzava = model.Drzava,
                        grad = model.Grad
                    };
                    var idLokacije = dc.lokacije.Where(x => x.drzava == lokacija.drzava && x.grad == lokacija.grad).Select(x => x.idlokacije).FirstOrDefault();
                    if(idLokacije == 0)
                    {
                        dc.lokacije.Add(lokacija);
                        idLokacije = dc.lokacije.Where(x => x.drzava == lokacija.drzava && x.grad == lokacija.grad).Select(x => x.idlokacije).FirstOrDefault();
                    }

                    var idKorisnika = dc.korisnici.Where(x => x.username == model.UserName).Select(x => x.idkorisnici).FirstOrDefault();
                    poslodavci noviPoslodavac = new poslodavci
                    {
                        telefon = model.Telefon,
                        broj_zaposlenih = model.BrojZaposlenih,
                        djelatnost = model.Djelatnost,
                        idkorisnici = idKorisnika,
                        naziv = model.Naziv,
                        OIB = model.OIB,
                        opis = model.Opis,
                        vrsta = model.Vrsta,
                        webpage = model.Webpage,
                        idlokacije = idLokacije
                    };
                    dc.poslodavci.Add(noviPoslodavac);
                    dc.SaveChanges();

                    ApiKontroler k = new ApiKontroler();
                    if (k.SendEmail("Potvrda Registracije", string.Format(@"
                    Dobro došli na našu stranicu i čestitamo na uspješnoj registraciji.
                    Da biste potvrdili registraciju, kliknite na link ispod:
                       http://localhost:50164/Admin/PotvrdaRegistracije/{0}?guid={1}", idKorisnika, tmpGuid), model.Email))
                    {
                        ViewBag.poslanaPotvrda = "Confirmation mail has been sent.";
                    }
                    return RedirectToAction("Login");
                }
                catch (Exception ex)
                {
                    //vratiti ponovo s greškom
                    ViewBag.errorOccured = "An error occured. Please try again";
                    return View("ContinueRegistrationEmployer", model);
                }
            }
            return View("ContinueRegistrationEmployer", model);
        }
        public ActionResult RegisterEmployee(RegisterEmployeeModel model)
        {
            if (ModelState.IsValid)
            {
                Guid tmpGuid = Guid.NewGuid();
                try
                {
                    bazaEntities dc = new bazaEntities();
                    korisnici novikorisnik = new korisnici
                    {
                        aktivan = false,
                        email = model.Email,
                        username = model.UserName,
                        password = model.Password,
                        GUID = tmpGuid.ToString(),
                        tip_korisnika = "posloprimac"
                    };
                    dc.korisnici.Add(novikorisnik);
                    dc.SaveChanges();
                    var idKorisnika = dc.korisnici.Where(x => x.username == model.UserName).Select(x => x.idkorisnici).FirstOrDefault();
                    posloprimci noviPosloprimac = new posloprimci
                    {
                        datum_rodjenja = model.DatumRodjenja,
                        idkorisnici = idKorisnika,
                        ime = model.Ime,
                        prezime = model.Prezime,
                        spol = model.Spol,
                        strucna_sprema = model.StrucnaSprema,
                        telefon = model.Telefon
                    };
                    dc.posloprimci.Add(noviPosloprimac);
                    dc.SaveChanges();

                    ApiKontroler k = new ApiKontroler();
                    if (k.SendEmail("Potvrda Registracije", string.Format(@"
                    Dobro došli na našu stranicu i čestitamo na uspješnoj registraciji.
                    Da biste potvrdili registraciju, kliknite na link ispod:
                       http://localhost:50164/Admin/PotvrdaRegistracije/{0}?guid={1}", idKorisnika, tmpGuid), model.Email))
                    {
                        ViewBag.poslanaPotvrda = "Confirmation mail has been sent.";
                    }

                    return RedirectToAction("Login");
                }
                catch (Exception ex)
                {
                    //vratiti ponovo s greškom
                    ViewBag.errorOccured = "An error occured. Please try again";
                    return View("ContinueRegistrationEmployee",model);
                }
            }
            return View("ContinueRegistrationEmployee", model);
        }
 public ActionResult PotvrdaRegistracije(int id, string guid)
 {
     bazaEntities db = new bazaEntities();
     korisnici u = db.korisnici.Find(id);
     u.aktivan = true;
     db.SaveChanges();
     if (u.tip_korisnika == "admin")
     {
         return RedirectToAction("Index", "Admin");
     }
     if (u.tip_korisnika == "poslodavac")
     {
         return RedirectToAction("Index", "Poslodavac");
     }
     return RedirectToAction("Index", "Posloprimac");
 }
        public ActionResult Login(LoginData m, string returnUrl)
        {
            if (ModelState.IsValid)
            {
                bazaEntities dc = new bazaEntities();
                var user = dc.korisnici.Where(a => a.username.Equals(m.Username) && a.password.Equals(m.Password)).FirstOrDefault();

                if (user != null)
                {
                    var model = new LoginData();
                    if (user.aktivan == true)
                    {

                        model.Username = user.username;
                        model.Password = user.password;
                        model.RememberMe = m.RememberMe;

                        var authticket = new
                            FormsAuthenticationTicket(1,
                                user.username,
                                DateTime.Now,
                                DateTime.Now.AddYears(1),
                                model.RememberMe,
                                "",
                                FormsAuthentication.FormsCookiePath);

                        string hash = FormsAuthentication.Encrypt(authticket);

                        var authcookie = new HttpCookie(FormsAuthentication.FormsCookieName, hash);

                        if (authticket.IsPersistent) authcookie.Expires = authticket.Expiration;

                        Response.Cookies.Add(authcookie);
                        if (user.tip_korisnika == "admin")
                        {
                            return RedirectToAction("Index", "Admin");
                        }
                        if (user.tip_korisnika == "poslodavac")
                        {
                            return RedirectToAction("Index", "Poslodavac");
                        }
                        return RedirectToAction("Index", "Posloprimac");
                    }
                    ModelState.AddModelError("", "User account is not activated.");
                    return View(m);
                }
                ModelState.AddModelError("", "The user name or password provided is incorrect.");
                return View(m);
            }
                // If we got this far, something failed, redisplay form
                ModelState.AddModelError("", "The user name or password provided is incorrect.");
                return View(m);
        }