示例#1
0
        async Task Posalji()
        {
            if (ValidateForm())
            {
                var request = new PromjenaLozinkeInsertRequest
                {
                    Email = Email
                };
                //APIService.Context = "Registracija";
                var temp = await _serviceZaboravljenaLozinka.GetAll <Model.PromjenaLozinke>(request);

                if (temp != null)
                {
                    await Application.Current.MainPage.DisplayAlert("Mail poslan", "Slanje maila je uspjesno, potrazite kod u zadnjoj nasoj poruci!", "OK");

                    await Application.Current.MainPage.Navigation.PushAsync(new PromjeniLozinku());
                }
                else
                {
                    await Application.Current.MainPage.DisplayAlert("Mail nije poslan", "Doslo je do greske!", "OK");
                }
            }
        }
        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);
        }