public ActionResult ContactForm(string firstName, string lastName, string subject, string email, string message)
        {
            //build email body
            string body =
                $"<h4>Connect with us - {lastName}</h4>"
                + $"<h6><i>Date Submitted: {DateTime.Now.ToShortDateString()}</i></h6>"
                + $"<h6><b>Name:</b> {firstName} {lastName}</h6>"
                + $"<h6><b>Email:</b> {email}</h6>"
                + $"<h6><b>Subject:</b> {(subject != "" ? subject : "Not provided")}</h6>"
                + $"<h6><b>Message:</b></br> {message}</h6>";

            //configure MailMessage
            MailMessage msg = new MailMessage(
                email
                , "*****@*****.**" //update to deployed email - "hello@"
                                        //, "*****@*****.**"
                , "Connect with us - CONTACT"
                , body);

            try
            {
                //send email
                EmailSettings.SendEmail(msg);
            }
            catch (Exception ex)
            {
                Debug.Write(ex.Message);
                TempData["EmailError"]         = "Oops! Something went wrong. Please try again later.";
                TempData["ConnectFieldValues"] = string.Format("PopulateFieldsOnError('{0}','{1}','{2}','{3}','{4}');", firstName, lastName, subject, email, message);
                return(View());
            }
            TempData["EmailConfirm"] = $"Your message was sent successfully. Thanks for connecting with us, {firstName}!";
            return(RedirectToAction("Index"));
        }
        public IActionResult PaymentSuccess(int ProductId)
        {
            if (HttpContext.GetLoggedUser() != null)
            {
                TempData["logged"] = "True";
            }
            else
            {
                return(RedirectToAction("Index", "Login"));
            }

            User    user    = con.Users.Find(HttpContext.GetLoggedUser().Id);
            Product product = con.Products.Find(ProductId);

            Payment payment = new Payment
            {
                UserId    = user.Id,
                ProductId = product.Id
            };


            con.Payments.Add(payment);
            con.SaveChanges();

            string messageRequest = "You have new order on your online shop! Check it out";
            string messageForUser = "******" +
                                    "entered in the 'Billing details' form.";

            EmailSettings.SendEmail(_configuration, user.Username, user.Email, "Order confirmation", messageForUser);
            EmailSettings.SendEmail(_configuration, "Adis Kubat", "*****@*****.**", "New order", messageRequest);

            return(View());
        }
Пример #3
0
        public IActionResult code(ForgotUniqueCodeVM model)
        {
            ApplicationUser user = _db.Users.FirstOrDefault(u => u.Email == model.Email);

            if (user == null)
            {
                TempData["errorMessage"] = "There is no user with this email. Please try again.";
                return(View(model));
            }

            var brojKorisnika = _db.Users.Count();

            brojac = ++brojKorisnika;

            user.UniqueCode = GetRandomizedString(brojac);

            _db.SaveChanges();

            string msg = "Your new unique code is: " + user.UniqueCode + "\nNow you can login with the new code.";

            EmailSettings.SendEmail(_configuration, user.Name + " " + user.Surname, user.Email, "New login info", msg);

            TempData["successMessage"] = "You have successfully changed your code! Check for it at your email and you can log in.";
            return(RedirectToAction("login", "account"));
        }
Пример #4
0
        public IActionResult SendConfirmation(ForgotPasswordVM model)
        {
            if (!ModelState.IsValid)
            {
                return(RedirectToAction("ForgotPassword"));
            }

            User user = con.Users.SingleOrDefault(i => i.Email == model.Email);

            if (user == null)
            {
                TempData["errorMessage"] = "Email address doesn't exist. Make sure that you enter a valid email address.";
                return(RedirectToAction("ForgotPassword"));
            }
            ChangePasswordCode changepw = con.ChangePasswords.SingleOrDefault
                                              (i => i.UserId == user.Id);

            if (changepw != null)
            {
                if ((DateTime.Now - changepw.Created).TotalHours < 24)
                {
                    TempData["errorMessage"] = "Email has been already sent to this email address";

                    return(RedirectToAction("ForgotPassword"));
                }
                else
                {
                    con.ChangePasswords.Remove(changepw);
                    con.SaveChanges();
                }
            }

            string value = RandomString.GetString(30);

            string link =
                $"{ this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}/Login/ChangePassword?value=" + value;

            string message = "Visit this link for password change: \n" + link +
                             "\nIf you don't change your password in next 24 hours this link will disappear " +
                             "will be invalid.";

            EmailSettings.SendEmail(_configuration, user.Username, user.Email, "Change password", message);

            ChangePasswordCode passwordRequest = new ChangePasswordCode
            {
                Value   = value,
                UserId  = user.Id,
                Created = DateTime.Now
            };

            con.ChangePasswords.Add(passwordRequest);

            con.SaveChanges();

            TempData["successMessage"] = "Email for password confirmation is successfully sent. Check your inbox.";

            return(RedirectToAction("Index"));
        }
        public IActionResult ContactUsSend(ContactUsVM model)
        {
            string messageRequest = "Message from: " + model.Name + "\n Email address: " + model.Email + "\n Subject: " + model.Subject + "\n Message: " + model.Message;
            string messageForUser = "******";

            EmailSettings.SendEmail(_configuration, model.Name, model.Email, "Ticket confirmation", messageForUser);
            EmailSettings.SendEmail(_configuration, "Adis Kubat", "*****@*****.**", "Message request", messageRequest);

            return(RedirectToAction("Index"));
        }
        public ActionResult FirstTimeGuest(string firstName, string lastName, string email, string phoneNbr, string preferredContact, bool isBringingKids, byte?totalNbrOfKids, string additionalQuestions)
        {
            string returnUrl = TempData["CurrentAction"].ToString();

            //build email body
            string body =
                $"<h4>Plan Your Visit - {lastName}</h4>"
                + $"<h6><i>Date Submitted: {DateTime.Now.ToShortDateString()}</i></h6>"
                + $"<h6><b>Name:</b> {firstName} {lastName}</h6>"
                + $"<h6><b>Email:</b> {(email.Length >= 1 ? email : "Not Provided")}</h6>"
                + $"<h6><b>Phone #:</b> {(phoneNbr.Length >= 1 ? phoneNbr : "Not Provided")}</h6>"
                + $"<h6><b>Preferred Contact:</b> {preferredContact}</h6>"
                + $"<h6><b>Bringing kids? </b> {(isBringingKids ? "Yes" : "No")}</h6>"
                + (isBringingKids ? $"<h6><b>Number of Kids:</b> {totalNbrOfKids}</h6>" : "")
                + $"<h6><b>Additional Questions:</b> {(additionalQuestions != "" ? $"<br />{additionalQuestions}" : "Not provided")}</h6>";

            //configure MailMessage
            MailMessage msg = new MailMessage(
                email
                , "*****@*****.**"                         //update to deployed email - "hello@"
                //, "*****@*****.**"
                , "PLAN YOUR VISIT - Guest"
                , body);

            try
            {
                //send email
                EmailSettings.SendEmail(msg);
            }
            catch (Exception ex)
            {
                Debug.Write(ex.Message);
                TempData["EmailError"]            = "Oops! Something went wrong. Please try again later.";
                TempData["GuestVisitFieldValues"] = string.Format("PopulateGuestVisitFieldsOnError('{0}','{1}','{2}','{3}','{4}', '{5}', '{6}', '{7}');", firstName, lastName, email, phoneNbr, preferredContact, isBringingKids, totalNbrOfKids, additionalQuestions);
                return(RedirectToAction(returnUrl));
            }
            TempData["EmailConfirm"] = $"Thanks for planning your visit, {firstName}!\nWe will be in contact with you soon!";
            return(RedirectToAction("Index"));
        }
        public IActionResult ZaboravljenaLozinka(ZaboravljenaLozinkaViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View("ZaboravljenaLozinka", model));
            }

            KorisnickiNalog korisnickiNalog = _context.KorisnickiNalogs.SingleOrDefault(i => i.Email == model.Email);

            if (korisnickiNalog == null)
            {
                TempData["errorMessage"] = "Email adresa se ne koristi.";
                return(View("ZaboravljenaLozinka", model));
            }

            PromjenaLozinke promjenaLozinke = _context.PromjenaLozinkes.SingleOrDefault
                                                  (i => i.KorisnickiNalogID == korisnickiNalog.KorisnickiNalogId);

            if (promjenaLozinke != null)
            {
                if ((DateTime.Now - promjenaLozinke.DatumPromjene).TotalHours < 24)
                {
                    TempData["errorMessage"] = "Email za promjenu lozinke je već poslan.";
                    return(View("ZaboravljenaLozinka", model));
                }
                else
                {
                    _context.PromjenaLozinkes.Remove(promjenaLozinke);
                    _context.SaveChanges();
                }
            }

            string primalacPoruke = "";

            if (korisnickiNalog.Permisije == 0)
            {
                primalacPoruke = korisnickiNalog.Ime + " " + korisnickiNalog.Prezime;
            }


            if (korisnickiNalog.Permisije == 1)
            {
                primalacPoruke = korisnickiNalog.Ime + " " + korisnickiNalog.Prezime;
            }


            if (korisnickiNalog.Permisije == 2)
            {
                primalacPoruke = korisnickiNalog.Ime + " " + korisnickiNalog.Prezime;
            }

            if (korisnickiNalog.Permisije == 3)
            {
                primalacPoruke = korisnickiNalog.Ime + " " + korisnickiNalog.Prezime;
            }


            string vrijednost = RandomString.GetString(30);
            string link       =
                $"{ this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}/prijava/promjena-lozinke?vrijednost=" + vrijednost;

            string poruka = "Kako bi promjenili lozinku, morate kliknut na sljedeći link: \n" + link +
                            "\nLink za resetiranje lozinke, će biti aktivan samo 24 sata, a poslije toga će postati nevažeći.";

            EmailSettings.SendEmail(_configuration, primalacPoruke, korisnickiNalog.Email, "Promjena lozinke", poruka);

            PromjenaLozinke zahtjevZaPromjenomLozinke = new PromjenaLozinke
            {
                Vrijednost        = vrijednost,
                KorisnickiNalogID = korisnickiNalog.KorisnickiNalogId,
                DatumPromjene     = DateTime.Now
            };

            _context.PromjenaLozinkes.Add(zahtjevZaPromjenomLozinke);
            _context.SaveChanges();

            TempData["successMessage"] = "Email za promjenu lozinke uspješno poslan.";
            return(RedirectToAction("zaboravljena-lozinka"));
        }
        public IActionResult Prijava(PrijavaViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }


            var korisnickiNalog = _context.KorisnickiNalogs
                                  .Where(i => i.Email == model.Email)
                                  .AsEnumerable()
                                  .Where(i => i.LozinkaHash ==
                                         PasswordSettings.GetHash(model.Lozinka, Convert.FromBase64String(i.LozinkaSalt)));

            if (korisnickiNalog == null || !korisnickiNalog.Any())
            {
                TempData["errorMessage"] = "Niste unijeli ispravne podatke za prijavu.";
                return(View(model));
            }


            if ((korisnickiNalog.First().Permisije == 0 &&
                 _context.Administrators
                 .Where(i => i.KorisnickiNalogId == korisnickiNalog.First().KorisnickiNalogId).First().Aktivan) ||
                (korisnickiNalog.First().Permisije == 1 &&
                 _context.Stomatologs
                 .Where(i => i.KorisnickiNalogId == korisnickiNalog.First().KorisnickiNalogId).First().Aktivan) ||
                (korisnickiNalog.First().Permisije == 2 &&
                 _context.MedicinskoOsobljes
                 .Where(i => i.KorisnickiNalogId == korisnickiNalog.First().KorisnickiNalogId).First().Aktivan) ||
                korisnickiNalog.First().Permisije == 3)
            {
                HttpContext.SetLogiraniKorisnik(korisnickiNalog.First(), true);                               //setuje logiranog korisnika

                var prijavaLokacijaMail    = GetLoginLocation(model.Email, "mail");                           //dobavlja informacije o lokaciji prijave
                var prijavaLokacijaMobitel = GetLoginLocation(model.Email, "mobitel");                        //dobavlja informacije o lokaciji prijave

                var trenutnoVrijeme    = DateTime.Now.ToString(new CultureInfo("de-DE"));                     //trenutno vrijeme prebacuje na njemacki format datum 19.03.2020 15:35:43
                var primalacPoruke     = korisnickiNalog.First().Ime + " " + korisnickiNalog.First().Prezime; //ime i prezime za email
                var primalacEmail      = korisnickiNalog.First().Email;                                       //primalac email-a
                var prijavaEmailPoruka = "Poštovani " + primalacPoruke +
                                         ",\nDetektovana je prijava na vaš račun" +
                                         "\n-----------------------------------------------\n\n" + prijavaLokacijaMail +
                                         "\nDatum i vrijeme: " + trenutnoVrijeme +
                                         "\n!!!AKO OVO NISTE BILI VI, MOLIMO VAS DA PROMJENITE VAŠU LOZINKU!!!" +
                                         "\nIli nas kontaktirajte na naš mail: [email protected]"; //generisanje email poruke

                var primalacPorukeTelefon = korisnickiNalog.First().Mobitel;



                //VAZNO!!! UKLONI KOMENTARE DA BI PRORADILO SLANJE PORUKA

                var client = new Client(creds: new Nexmo.Api.Request.Credentials
                {
                    ApiKey    = _configuration.GetValue <string>("NexmoSmsGateway:ApiKey"),
                    ApiSecret = _configuration.GetValue <string>("NexmoSmsGateway:ApiSecret")
                });
                var results = client.SMS.Send(request: new SMS.SMSRequest
                {
                    from = "Ordinacija",
                    to   = primalacPorukeTelefon,
                    text = prijavaLokacijaMobitel
                });


                EmailSettings.SendEmail(_configuration, primalacPoruke, primalacEmail, "Nova prijava detektovana", prijavaEmailPoruka);//šalje email

                return(RedirectToAction("Pocetna", "Profil"));
            }

            TempData["errorMessage"] = "Niste unijeli ispravne podatke za prijavu.";
            return(View(model));
        }
Пример #9
0
        public async Task <IActionResult> outgoing(UsersVM model)
        {
            if (_db.Users.Any(i => i.Email == model.Email))
            {
                TempData["errorMessage"] = "E-mail you choosed is currently in use. Please use another.";
                return(RedirectToAction("outgoing"));
            }

            if (ModelState.IsValid)
            {
                bool x = await _roleManager.RoleExistsAsync("OutgoingApplicant");

                if (!x)
                {
                    await _roleManager.CreateAsync(new IdentityRole
                    {
                        Name = "OutgoingApplicant"
                    });
                }

                //password must be strong enough in order for userManager.CreateAsync to work!!!
                string password = "******";

                var brojKorisnika = _db.Users.Count();

                brojac = ++brojKorisnika;

                ApplicationUser user = new ApplicationUser
                {
                    Name        = model.Name,
                    Surname     = model.Surname,
                    Email       = model.Email,
                    PhoneNumber = model.PhoneNumber,
                    CountryId   = model.CountryId,
                    UserName    = model.Name.ToLower() + '.' + model.Surname.ToLower(),
                    UniqueCode  = GetRandomizedString(brojac),
                    LastLogin   = DateTime.Now
                };

                await _userManager.CreateAsync(user, password);

                await _userManager.AddToRoleAsync(user, "OutgoingApplicant");

                Applicant applicant = new Applicant
                {
                    ApplicantId       = user.Id,
                    ApplicationUser   = user,
                    CreatedProfile    = DateTime.Now,
                    UniversityId      = 2,
                    FacultyName       = model.FacultyName,
                    TypeOfApplication = model.TypeOfApplication,
                    StudyCycle        = model.StudyCycle,
                    StudyField        = model.StudyField,
                    Verified          = false
                };

                _db.Applicant.Add(applicant);
                _db.SaveChanges();

                string welcome = "Thank you for the registration at IRO Dzemal Bijedic University of Mostar system!\n";
                string thanks  = "We wish you the best of luck for your nomination. Please follow the rules!\n";
                string contact = "In case of any problems you can contact us at [email protected] \n";
                string msg     = welcome + "Your unique code is: " + user.UniqueCode + "\nPlease login with your code. " + thanks + contact;
                EmailSettings.SendEmail(_configuration, user.Name + " " + user.Surname, user.Email, "Login info", msg);

                TempData["successMessage"] = "You have successfully registered! Now you can log in.";
                return(RedirectToAction("login", "account"));
            }
            TempData["errorMessage"] = "Something went wrong, please try again.";
            return(RedirectToAction("outgoing", "account"));
        }
Пример #10
0
        public IActionResult DodajOsoblje(KorisnikDodajOsobljeViewModel model)
        {
            if (!ModelState.IsValid)
            {
                model.Gradovi = _context.Grads.Select
                                    (i => new SelectListItem {
                    Text = i.Naziv, Value = i.GradId.ToString()
                }).ToList();
                model.Titule = _context.Titulas.Select
                                   (i => new SelectListItem {
                    Text = i.Naziv, Value = i.TitulaId.ToString()
                }).ToList();
                return(View("DodajOsoblje", model));
            }


            if (_context.KorisnickiNalogs.Any(i => i.Email == model.Email))
            {
                TempData["errorMessage"] = "Email adresa se koristi.";
                model.Gradovi            = _context.Grads.Select
                                               (i => new SelectListItem {
                    Text = i.Naziv, Value = i.GradId.ToString()
                }).ToList();
                model.Titule = _context.Titulas.Select
                                   (i => new SelectListItem {
                    Text = i.Naziv, Value = i.TitulaId.ToString()
                }).ToList();
                return(View("DodajOsoblje", model));
            }

            byte[] lozinkaSalt = PasswordSettings.GetSalt();
            var    templozinka = GenerateRandomPassword();
            string lozinkaHash = PasswordSettings.GetHash(templozinka, lozinkaSalt);


            string uniqueFileName = UploadedFile(model);

            KorisnickiNalog korisnickiNalog = new KorisnickiNalog
            {
                Ime           = model.Ime,
                Prezime       = model.Prezime,
                Email         = model.Email,
                LozinkaHash   = lozinkaHash,
                LozinkaSalt   = Convert.ToBase64String(lozinkaSalt),
                Permisije     = 2,
                Kreirano      = DateTime.Now,
                Mobitel       = model.Mobitel,
                GradId        = model.GradID,
                Adresa        = model.Adresa,
                JMBG          = model.JMBG,
                DatumRodjenja = model.DatumRodjenja,
                Spol          = model.Spol,
                Slika         = uniqueFileName
            };
            MedicinskoOsoblje osoblje = new MedicinskoOsoblje
            {
                KorisnickiNalog = korisnickiNalog,
                TitulaID        = model.TitulaID,
                DatumZaposlenja = model.DatumZaposlenja,
                BrojZiroRacuna  = model.BrojZiroRacuna,
                Aktivan         = model.Aktivan,
                OpisPosla       = model.OpisPosla
            };

            _context.KorisnickiNalogs.Add(korisnickiNalog);
            _context.MedicinskoOsobljes.Add(osoblje);

            _context.SaveChanges();

            string primalacPoruke = korisnickiNalog.Ime + " " + korisnickiNalog.Prezime;
            string poruka         = primalacPoruke + " vaši pristupni podaci su: \nEmail: " + korisnickiNalog.Email +
                                    "\nPassword: "******"Nalog napravljen", poruka);

            TempData["successMessage"] = "Uspješno ste dodali novog uposlenika.";
            return(RedirectToAction("uredi-osoblje"));
        }
Пример #11
0
        public IActionResult DodajPacijenta(KorisnikDodajPacijentaViewModel model)
        {
            if (!ModelState.IsValid)
            {
                model.Gradovi = _context.Grads.Select
                                    (i => new SelectListItem {
                    Text = i.Naziv, Value = i.GradId.ToString()
                }).ToList();
                return(View("DodajPacijenta", model));
            }

            if (_context.KorisnickiNalogs.Any(i => i.Email == model.Email))
            {
                TempData["errorMessage"] = "Email adresa se koristi.";
                model.Gradovi            = _context.Grads.Select
                                               (i => new SelectListItem {
                    Text = i.Naziv, Value = i.GradId.ToString()
                }).ToList();
                return(View("DodajPacijenta", model));
            }

            byte[] lozinkaSalt = PasswordSettings.GetSalt();
            var    templozinka = GenerateRandomPassword();
            string lozinkaHash = PasswordSettings.GetHash(templozinka, lozinkaSalt);

            string uniqueFileName = UploadedFile(model);

            KorisnickiNalog korisnickiNalog = new KorisnickiNalog
            {
                Ime           = model.Ime,
                Prezime       = model.Prezime,
                Email         = model.Email,
                LozinkaHash   = lozinkaHash,
                LozinkaSalt   = Convert.ToBase64String(lozinkaSalt),
                Permisije     = 3,
                Kreirano      = DateTime.Now,
                Mobitel       = model.Mobitel,
                GradId        = model.GradID,
                Adresa        = model.Adresa,
                JMBG          = model.JMBG,
                DatumRodjenja = model.DatumRodjenja,
                Spol          = model.Spol,
                Slika         = uniqueFileName
            };
            Pacijent pacijent = new Pacijent
            {
                KorisnickiNalog = korisnickiNalog,
                AlergijaNaLijek = model.AlergijaNaLijek,
                Aparatic        = model.Aparatic,
                Navlake         = model.Navlake,
                Proteza         = model.Proteza,
                Terapija        = model.Terapija
            };

            _context.KorisnickiNalogs.Add(korisnickiNalog);
            _context.Pacijents.Add(pacijent);

            _context.SaveChanges();

            string primalacPoruke = korisnickiNalog.Ime + " " + korisnickiNalog.Prezime;
            string poruka         = primalacPoruke + " vaši pristupni podaci su: \nEmail: " + korisnickiNalog.Email +
                                    "\nPassword: "******"Nalog napravljen", poruka);

            TempData["successMessage"] = "Uspješno ste dodali novog pacijenta.";

            return(RedirectToAction("uredi-pacijent"));
        }
        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);
        }