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()); }
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")); }
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)); }
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")); }
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")); }
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); }