public Model.PromjenaLozinke PromjeniLozinku([FromQuery] PromjenaLozinkeVrijednostInsertRequest request)
        {
            var korisnik = _context.Korisnici.FirstOrDefault(i => i.KorisnickoIme == request.KorisnickoIme);

            if (korisnik == null)
            {
                throw new UserException("Ne mozete promjeniti lozinku, jer korisnicko ime ne postoji!");
            }

            var vrijednostProvjera = _context.PromjenaLozinkes.FirstOrDefault(i =>
                                                                              i.KorisnikId == korisnik.KorisnikId && i.Vrijednost == request.Vrijednost);

            if (vrijednostProvjera == null)
            {
                throw new UserException("Niste unijeli ispravan kod za ovo korisnicko ime!");
            }

            if (string.IsNullOrWhiteSpace(request.Lozinka))
            {
                throw new UserException("Niste unijeli lozinku!");
            }


            if (request.Lozinka != request.PotvrdaLozinke)
            {
                throw new UserException("Password i potvrda se ne slažu!");
            }

            korisnik.LozinkaSalt = GenerateSalt();
            korisnik.LozinkaHash = GenerateHash(korisnik.LozinkaSalt, request.Lozinka);


            var tempconvert = new Model.PromjenaLozinke
            {
                DatumPromjene = vrijednostProvjera.DatumPromjene,
                KorisnikId    = vrijednostProvjera.KorisnikId,
                Vrijednost    = vrijednostProvjera.Vrijednost
            };

            _context.PromjenaLozinkes.Remove(vrijednostProvjera);
            _context.SaveChanges();


            return(tempconvert);
        }
        public Model.PromjenaLozinke ZaboravljenaLozinka([FromQuery] PromjenaLozinkeInsertRequest request)
        {
            var temp = _context.Korisnici.FirstOrDefault(i => i.Email == request.Email);

            if (temp == null)
            {
                throw new UserException("Email adresa ne postoji!");
            }

            var promjenaTemp = _context.PromjenaLozinkes.FirstOrDefault(i => i.KorisnikId == temp.KorisnikId);

            if (promjenaTemp != null)
            {
                if ((DateTime.Now - promjenaTemp.DatumPromjene).TotalHours < 24)
                {
                    var postojiPromjena = new Model.PromjenaLozinke
                    {
                        DatumPromjene     = promjenaTemp.DatumPromjene,
                        KorisnikId        = promjenaTemp.KorisnikId,
                        Vrijednost        = promjenaTemp.Vrijednost,
                        PromjenaLozinkeID = promjenaTemp.PromjenaLozinkeID
                    };
                    return(postojiPromjena);
                }
                else
                {
                    _context.PromjenaLozinkes.Remove(promjenaTemp);
                    _context.SaveChanges();
                }
            }

            string primalacPoruke = "";

            primalacPoruke = temp.Ime + " " + temp.Prezime;
            string vrijednost = RandomString.GetString(6);

            string poruka = "Kako bi promjenili lozinku, morate upisati u svoju aplikaciju sljedeći niz karaktera:   " + vrijednost +
                            "\nOvaj kod za resetiranje lozinke, će biti aktivan samo 24 sata, a poslije toga će postati nevažeći.";

            try
            {
                EmailSettings.SendEmail(_configuration, primalacPoruke, temp.Email, "Promjena lozinke", poruka);
            }
            catch (Exception)
            {
                throw new UserException("Email servis ne radi, vjerovatno blokiran od strane gmaila!");
            }


            Database.PromjenaLozinke zahtjevZaPromjenomLozinke = new Database.PromjenaLozinke
            {
                Vrijednost    = vrijednost,
                KorisnikId    = temp.KorisnikId,
                DatumPromjene = DateTime.Now
            };
            _context.PromjenaLozinkes.Add(zahtjevZaPromjenomLozinke);
            _context.SaveChanges();

            var tempconvert = new Model.PromjenaLozinke
            {
                DatumPromjene = zahtjevZaPromjenomLozinke.DatumPromjene,
                KorisnikId    = zahtjevZaPromjenomLozinke.KorisnikId,
                Vrijednost    = zahtjevZaPromjenomLozinke.Vrijednost
            };


            return(tempconvert);
        }