public ActionResult CreateOffer([Bind(Include = "viesti_Id,inbox,viestiLoki,opiskelija_Id,yritys_Id,paaKayttaja_Id")] Viesti viesti, int?opisId) { if (ModelState.IsValid) { using (Stud1Entities dc = new Stud1Entities()) { Viesti uusiViesti = new Viesti(); uusiViesti.inbox = viesti.inbox; uusiViesti.viestiLoki = viesti.viestiLoki; uusiViesti.opiskelija_Id = opisId; uusiViesti.yritys_Id = Convert.ToInt32(Session["corporate_id"]); uusiViesti.onkoVastaus = false; uusiViesti.onkoLuettu = false; uusiViesti.viestinPaivays = DateTime.Now; db.Viesti.Add(uusiViesti); db.SaveChanges(); } return(RedirectToAction("Index")); } ViewBag.opiskelija_Id = new SelectList(db.Opiskelija, "opiskelija_Id", "etunimi", viesti.opiskelija_Id); ViewBag.paaKayttaja_Id = new SelectList(db.PaaKayttaja, "paaKayttaja_Id", "nimi", viesti.paaKayttaja_Id); ViewBag.yritys_Id = new SelectList(db.Yritys, "yritys_Id", "yrityksenNimi", viesti.yritys_Id); return(View(viesti)); }
public ActionResult Reply([Bind(Include = "viesti_Id,inbox,viestiLoki,opiskelija_Id,yritys_Id,paaKayttaja_Id")] Viesti viesti, int?yritysId, string vastausAihe) { if (ModelState.IsValid) { using (Stud1Entities dc = new Stud1Entities()) { Viesti uusiVastausViesti = new Viesti(); uusiVastausViesti.inbox = vastausAihe; uusiVastausViesti.viestiLoki = viesti.viestiLoki; uusiVastausViesti.opiskelija_Id = Convert.ToInt32(Session["student_id"]); uusiVastausViesti.yritys_Id = yritysId; uusiVastausViesti.onkoLuettu = false; uusiVastausViesti.onkoVastaus = true; uusiVastausViesti.viestinPaivays = DateTime.Now; db.Viesti.Add(uusiVastausViesti); db.SaveChanges(); } return(RedirectToAction("HaeOpiskelijanViestit", "Viestis")); } ViewBag.opiskelija_Id = new SelectList(db.Opiskelija, "opiskelija_Id", "etunimi", viesti.opiskelija_Id); ViewBag.paaKayttaja_Id = new SelectList(db.PaaKayttaja, "paaKayttaja_Id", "nimi", viesti.paaKayttaja_Id); ViewBag.yritys_Id = new SelectList(db.Yritys, "yritys_Id", "yrityksenNimi", viesti.yritys_Id); return(View(viesti)); }
//**************************************************************** //viestiluetuksi //**************************************************************** //**HOX! tällä hetkellä mahdollisesti pystyy suoraan selaimen osoiteriville kirjoitettuaan kirjoittaa viestin luetuksi. ei paha. public ActionResult ViestiLuetuksi(int id) //id tulee suoraan osoitekenttään linkistä saatavalla item.viesti_Id:llä { using (Stud1Entities update = new Stud1Entities()) { Viesti viestiLuetuksi = (from c in update.Viesti where c.viesti_Id == id select c).FirstOrDefault(); viestiLuetuksi.onkoLuettu = true; update.SaveChanges(); } //Viesti f = db.Viesti.FirstOrDefault(x => x.viesti_Id == id); //f.onkoLuettu = true; //db.SaveChanges(); //uudelleenlinkkaus takaisin käyttäjän sivulle onnistuneen tietokantatallennuksen jälkeen: if (Convert.ToInt32(Session["admin_id"]) != 1) { if (Session["student_id"] != null) { return(RedirectToAction("HaeOpiskelijanViestit", "Viestis", null)); } if (Session["corporate_id"] != null) { return(RedirectToAction("HaeYrityksenViestit", "Viestis", null)); } return(RedirectToAction("Index", "Viestis", null)); } else { return(RedirectToAction("Login", "Logins", null)); } }
public bool IsEmailExist(string emailID) { using (Stud1Entities dc = new Stud1Entities()) { var v = dc.Login.Where(a => a.kayttajaNimi == emailID).FirstOrDefault(); return(v != null); } }
public ActionResult Login(UserLogin login, string ReturnUrl = "") { string message = ""; using (Stud1Entities dc = new Stud1Entities()) { var v = dc.Login.Where(a => a.kayttajaNimi == login.EmailID).FirstOrDefault(); if (v != null) { //if (!v.onkoEmailAktivoitu) //jos email-osoitetta ei ole aktivoitu niin: //{ // ViewBag.Message = "Olkaa hyvä ja vahvistakaa sähköpostiosoitteenne"; //ei välttämätön, mutta aika yleinen, jos jää aikaa niin toteutetaan // return View(); //} //tämä tarkastaa generoidun passwordin ja syötetyn passwordin eron //ei välttämättä tarvitse tehdä erikoista passwordia, mutta yllä oleva sähköpostivahvistus olisi varmasti hyvä olla //original: //if (string.Compare(Crypto.Hash(login.Password), v.salasana) == 0) if (string.Compare(login.Password, v.salasana) == 0) { int timeout = login.RememberMe ? 525600 : 20; // 525600 min = 1 year var ticket = new FormsAuthenticationTicket(login.EmailID, login.RememberMe, timeout); string encrypted = FormsAuthentication.Encrypt(ticket); var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encrypted); cookie.Expires = DateTime.Now.AddMinutes(timeout); cookie.HttpOnly = true; Response.Cookies.Add(cookie); if (Url.IsLocalUrl(ReturnUrl)) { return(Redirect(ReturnUrl)); } else { return(RedirectToAction("Index", "Home")); } } else { message = "Tarkista käyttäjänimi ja salasana."; } } else { message = "Tarkista käyttäjänimi ja salasana."; } } ViewBag.Message = message; return(View()); }
public ActionResult VerifyAccount(string id) { bool Status = false; using (Stud1Entities dc = new Stud1Entities()) { dc.Configuration.ValidateOnSaveEnabled = false; //SaveChanges(); var v = dc.Login.Where(a => a.aktivointiKoodi == new Guid(id)).FirstOrDefault(); if (v != null) { v.onkoEmailAktivoitu = true; dc.SaveChanges(); Status = true; } else { ViewBag.Message = "Virhe käsiteltäessä pyyntöä!"; } } ViewBag.Status = Status; return(View()); }
public ActionResult Login(UserLogin login, string ReturnUrl = "") { string message = ""; using (Stud1Entities dc = new Stud1Entities()) { var v = dc.Login.Where(a => a.kayttajaNimi == login.EmailID).FirstOrDefault(); if (v != null) { //************************************************** //******käyttäjän tunnnistus loginista************** //************************************************** if (v.opiskelija_Id != null) //jos käyttäjällä on login -taulun opiskelija_id:ssä tietoa, niin käyttäjä tunnistetaan opiskelijaksi. { System.Diagnostics.Debug.WriteLine("tämä käyttäjä on opiskelija"); Session["student_id"] = v.opiskelija_Id; Session["student_kayttajaNimi"] = v.kayttajaNimi; } if (v.yritys_Id != null) //jos käyttäjällä on login -taulun yritys_id:ssä tietoa, niin käyttäjä tunnistetaan yritykseksi. { System.Diagnostics.Debug.WriteLine("tämä käyttäjä on yritys"); Session["corporate_id"] = v.yritys_Id; Session["corporate_kayttajaNimi"] = v.kayttajaNimi; } if (v.paaKayttaja_Id != null) //jos käyttäjällä on login -taulun pääkäyttäjä_id:ssä tietoa, niin käyttäjä tunnistetaan pääkäyttäjäksi. { System.Diagnostics.Debug.WriteLine("tämä käyttäjä on pääkäyttäjä"); Session["admin_id"] = v.paaKayttaja_Id; Session["admin_kayttajaNimi"] = v.kayttajaNimi; } //if (!v.onkoEmailAktivoitu) //jos email-osoitetta ei ole aktivoitu niin: //{ // ViewBag.Message = "Olkaa hyvä ja vahvistakaa sähköpostiosoitteenne"; //ei välttämätön, mutta aika yleinen, jos jää aikaa niin toteutetaan // return View(); //} //tämä tarkastaa generoidun passwordin ja syötetyn passwordin eron //ei välttämättä tarvitse tehdä erikoista passwordia, mutta yllä oleva sähköpostivahvistus olisi varmasti hyvä olla //original: //if (string.Compare(Crypto.Hash(login.Password), v.salasana) == 0) if (string.Compare(login.Password, v.salasana) == 0) { int timeout = login.RememberMe ? 525600 : 20; // 525600 min = 1 year var ticket = new FormsAuthenticationTicket(login.EmailID, login.RememberMe, timeout); string encrypted = FormsAuthentication.Encrypt(ticket); var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encrypted); cookie.Expires = DateTime.Now.AddMinutes(timeout); cookie.HttpOnly = true; Response.Cookies.Add(cookie); if (Url.IsLocalUrl(ReturnUrl)) { return(Redirect(ReturnUrl)); } else { if (v.opiskelija_Id != null) //kirjautunut opiskelija ohjataan omaan näkymäänsä { return(RedirectToAction("OpisSisalto", "Omasisaltos")); } if (v.yritys_Id != null) //kirjautunut yritys ohjataan omaan näkymäänsä { return(RedirectToAction("YritysSisalto", "Omasisaltos")); } if (v.paaKayttaja_Id != null) //kirjautunut pääkäyttäjä(admin) ohjataan omaan näkymäänsä { return(RedirectToAction("Index", "Omasisaltos")); } } } else { message = "Tarkista käyttäjänimi ja salasana."; } } else { message = "Tarkista käyttäjänimi ja salasana."; } } ViewBag.Message = message; return(View()); }
//Määritellään YritysRekisterointi.cshtml syötettyjen tietojen tallennuspaikka (luokkaan)... public ActionResult YritysRekisterointi( [Bind(Prefix = "Item1")] LoginModel yriKirjautuminen, [Bind(Prefix = "Item2")] YritysModel yritys, [Bind(Prefix = "Item3")] PostitoimipaikkaModel pstmp, [Bind(Prefix = "Item4")] PuhelinNumeroModel puhelinnro ) { bool Status = false; string message = ""; // // Model Validation if (ModelState.IsValid) { #region //Email already Exist var isExist = IsEmailExist(yriKirjautuminen.kayttajaNimi); if (isExist) { //TempData["EmailExist"] = "Tämä sähköpostiosoite on jo rekisteröity"; //ModelState.AddModelError("EmailExist", "Tämä sähköpostiosoite on jo rekisteröity"); ModelState.AddModelError("", "Tämä sähköpostiosoite on jo rekisteröity"); return(View()); //jos sähköposti löytyy niin käyttäjä palautetaan samaan näkymään. Tämän ei pitäisi poistaa jo syötettyjä tietoja. } #endregion #region Generate Activation Code yriKirjautuminen.aktivointiKoodi = Guid.NewGuid(); #endregion //#region Password Hashing //user.salasana = Crypto.Hash(user.salasana); ////salasanan tarkastus user.cs -tiedostosta (en tiedä miten toimii) //confirm.ConfirmPassword = Crypto.Hash(confirm.ConfirmPassword); // //#endregion yriKirjautuminen.onkoEmailAktivoitu = true;//muutettu trueksi koska helpompi kehittäessä... #region Tallennus kantaan using (Stud1Entities dc = new Stud1Entities()) { //Tietojen tallennus modelista tietokantaan... Yritys uusiYrit = new Yritys(); uusiYrit.yrityksenNimi = yritys.yrityksenNimi; uusiYrit.yrityksenNimi = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(uusiYrit.yrityksenNimi.ToLower()); //muutetaan ensimmäinen kirjain isoksi, koska käyttäjä uusiYrit.Y_tunnus = yritys.Y_tunnus; uusiYrit.lahiosoite = yritys.lahiosoite; string yrityksenpostinumero = pstmp.postinumero; uusiYrit.postitoimipaikka_Id = (from x in db.Postitoimipaikka where x.postinumero == yrityksenpostinumero select x.postitoimipaikka_Id).First(); //Postitoimipaikka id:n haku postinumeron perusteella Login uusiKirjY = new Login(); uusiKirjY.yritys_Id = yritys.yritys_Id; uusiKirjY.kayttajaNimi = yriKirjautuminen.kayttajaNimi; uusiKirjY.salasana = yriKirjautuminen.salasana; uusiKirjY.aktivointiKoodi = yriKirjautuminen.aktivointiKoodi; uusiKirjY.onkoEmailAktivoitu = yriKirjautuminen.onkoEmailAktivoitu; PuhelinNumero uusiPuhY = new PuhelinNumero(); uusiPuhY.numero = puhelinnro.numero; uusiPuhY.yritys_Id = yritys.yritys_Id; Sahkoposti uusiSpostiY = new Sahkoposti(); uusiSpostiY.sahkopostiOsoite = yriKirjautuminen.kayttajaNimi; uusiSpostiY.yritys_Id = yritys.yritys_Id; dc.Yritys.Add(uusiYrit); dc.PuhelinNumero.Add(uusiPuhY); dc.Sahkoposti.Add(uusiSpostiY); dc.Login.Add(uusiKirjY); dc.SaveChanges(); ////Kutsutaan aktivointisähköpostin lähetysmetodia... //SendVerificationLinkEmail(user.kayttajaNimi, user.aktivointiKoodi.ToString()); //message = "Rekisteröityminen onnistui. Rekisteröitymisen aktivointilinkki " + // " on lähetetty sähköpostiinne:" + user.kayttajaNimi; //Status = true; } #endregion } else { message = "Virhe käsiteltäessä pyyntöä!"; } ViewBag.Message = message; ViewBag.Status = Status; return(RedirectToAction("Login")); //palautuu tällä hetkellä login viewiin, pitäisi varmaan käyttää sähköpostiosoitteen validointia tai rekisteröityminen onnistui sivua jos aikaa jää.... }
public ActionResult YritysTiedotUpdate( [Bind(Prefix = "Item1")] LoginModel yrityskirjautuminen, [Bind(Prefix = "Item2")] YritysModel yritys, [Bind(Prefix = "Item3")] PostitoimipaikkaModel pstmp, [Bind(Prefix = "Item4")] PuhelinNumeroModel puhelinnro, int?id ) { bool Status = false; // // Model Validation if (id != null) { #region Yrityksen päivitettyjen tietojen tallennus tietokantaan //etunimen, sukunimen, postitoimipaikan päivitys using (Stud1Entities dc = new Stud1Entities()) { var paivitaYritys = dc.Yritys.Where(c => c.yritys_Id == id).FirstOrDefault(); //päivitetään sitä opiskelijaa joka omaa saman opiskelija_Id:n mikä (id)viewistä ohjataan tänne paivitaYritys.yrityksenNimi = yritys.yrityksenNimi; paivitaYritys.Y_tunnus = yritys.Y_tunnus; paivitaYritys.lahiosoite = yritys.lahiosoite; string yrityksenpostinumero = pstmp.postinumero; try { //Postitoimipaikka id:n haku postinumeron perusteella paivitaYritys.postitoimipaikka_Id = (from x in db.Postitoimipaikka where x.postinumero == yrityksenpostinumero select x.postitoimipaikka_Id).First(); } catch (Exception) { TempData["tallennusEpaonnistui"] = "Virhe käsiteltäessä pyyntöä! Postitoimipaikka viallinen."; return(RedirectToAction("YritysSisalto", "OmaSisaltos", null)); } dc.Entry(paivitaYritys).State = EntityState.Modified; dc.SaveChanges(); dc.Entry(paivitaYritys).State = EntityState.Detached; //en tiedä onko tarpeellinen, mutta toimii } //salasanan päivitys, jokainen entitymäärityksen tulee olla eriniminen muuten tulee erroria...HOX! using (Stud1Entities dcc = new Stud1Entities()) { var paivitaSaY = dcc.Login.Where(d => d.yritys_Id == id).FirstOrDefault(); if (yrityskirjautuminen.salasana == null) { TempData["tallennusEpaonnistui"] = "Virhe käsiteltäessä pyyntöä! Salasana vaaditaan."; return(RedirectToAction("YritysSisalto", "OmaSisaltos", null)); } else { paivitaSaY.salasana = yrityskirjautuminen.salasana; } dcc.Entry(paivitaSaY).State = EntityState.Modified; dcc.SaveChanges(); dcc.Entry(paivitaSaY).State = EntityState.Detached; //en tiedä onko tarpeellinen, mutta toimii } //puhelinnumeron päivitys using (Stud1Entities dccc = new Stud1Entities()) { var paivitaPuhY = dccc.PuhelinNumero.Where(e => e.yritys_Id == id).FirstOrDefault(); paivitaPuhY.numero = puhelinnro.numero; dccc.Entry(paivitaPuhY).State = EntityState.Modified; dccc.SaveChanges(); dccc.Entry(paivitaPuhY).State = EntityState.Detached; //en tiedä onko tarpeellinen, mutta toimii } #endregion } else { TempData["tallennusEpaonnistui"] = "Virhe käsiteltäessä pyyntöä!"; } TempData["tallennusOnnistui"] = "Tiedot tallennettiin onnistuneesti!"; ViewBag.Status = Status; return(RedirectToAction("YritysSisalto", "OmaSisaltos", null)); }
public ActionResult OppilasTiedotUpdate( [Bind(Prefix = "Item1")] LoginModel oppkirjautuminen, [Bind(Prefix = "Item2")] OpiskelijaModel opiskelija, [Bind(Prefix = "Item3")] PostitoimipaikkaModel pstmp, [Bind(Prefix = "Item4")] PuhelinNumeroModel puhelinnro, int?id ) { bool Status = false; // Validation if (id != null) { #region Opiskelijan päivitettyjen tietojen tallennus tietokantaan //etunimen, sukunimen, postitoimipaikan päivitys using (Stud1Entities dc = new Stud1Entities()) { var paivitaOpis = dc.Opiskelija.Where(c => c.opiskelija_Id == id).FirstOrDefault(); //päivitetään sitä opiskelijaa joka omaa saman opiskelija_Id:n mikä (id)viewistä ohjataan tänne paivitaOpis.etunimi = opiskelija.etunimi; paivitaOpis.etunimi = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(paivitaOpis.etunimi.ToLower()); paivitaOpis.sukunimi = opiskelija.sukunimi; paivitaOpis.sukunimi = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(paivitaOpis.sukunimi.ToLower()); string opiskelijanpostinumero = pstmp.postinumero; try { //Postitoimipaikka id:n haku postinumeron perusteella paivitaOpis.postitoimipaikka_Id = (from x in db.Postitoimipaikka where x.postinumero == opiskelijanpostinumero select x.postitoimipaikka_Id).First(); } catch (Exception) { TempData["tallennusEpaonnistui"] = "Virhe käsiteltäessä pyyntöä! Postinumero on viallinen."; return(RedirectToAction("OpisSisalto", "OmaSisaltos", null)); } dc.Entry(paivitaOpis).State = EntityState.Modified; dc.SaveChanges(); dc.Entry(paivitaOpis).State = EntityState.Detached; //en tiedä onko tarpeellinen, mutta toimii } //salasanan päivitys, jokainen entitymäärityksen tulee olla eriniminen muuten tulee erroria...HOX! using (Stud1Entities dcc = new Stud1Entities()) { var paivitaSa = dcc.Login.Where(d => d.opiskelija_Id == id).FirstOrDefault(); if (oppkirjautuminen.salasana == null) { TempData["tallennusEpaonnistui"] = "Virhe käsiteltäessä pyyntöä! Salasana vaaditaan."; return(RedirectToAction("OpisSisalto", "OmaSisaltos", null)); } else { paivitaSa.salasana = oppkirjautuminen.salasana; } dcc.Entry(paivitaSa).State = EntityState.Modified; dcc.SaveChanges(); dcc.Entry(paivitaSa).State = EntityState.Detached; //en tiedä onko tarpeellinen, mutta toimii } //puhelinnumeron päivitys using (Stud1Entities dccc = new Stud1Entities()) { var paivitaPuh = dccc.PuhelinNumero.Where(e => e.opiskelija_Id == id).FirstOrDefault(); paivitaPuh.numero = puhelinnro.numero; dccc.Entry(paivitaPuh).State = EntityState.Modified; dccc.SaveChanges(); dccc.Entry(paivitaPuh).State = EntityState.Detached; //en tiedä onko tarpeellinen, mutta toimii } #endregion } else { TempData["tallennusEpaonnistui"] = "Virhe käsiteltäessä pyyntöä!"; } TempData["tallennusOnnistui"] = "Tiedot tallennettiin onnistuneesti!"; ViewBag.Status = Status; return(RedirectToAction("OpisSisalto", "OmaSisaltos", null)); }
//OppilasRekisterointi.cshtml käyttää Tuple -määritystä modeleihin(luokkiin) kirjoittamista varten ja ne ovar array -muodossa(Item1,Item2,Item3 jne.) //Määritellään OppilasRekisterointi.cshtml syötettyjen tietojen tallennuspaikka (luokkaan)... public ActionResult OppilasRekisterointi( [Bind(Prefix = "Item1")] LoginModel oppkirjautuminen, [Bind(Prefix = "Item2")] OpiskelijaModel opiskelija, [Bind(Prefix = "Item3")] PostitoimipaikkaModel pstmp, [Bind(Prefix = "Item4")] PuhelinNumeroModel puhelinnro ) { bool Status = false; string message = ""; // // Model Validation if (ModelState.IsValid) { #region //Email already Exist //Login oppTarkastus = new Login(); var isExist = IsEmailExist(oppkirjautuminen.kayttajaNimi); if (isExist) { //TempData["EmailExist"] = "Tämä sähköpostiosoite on jo rekisteröity"; //ModelState.AddModelError("EmailExist", "Tämä sähköpostiosoite on jo rekisteröity"); ModelState.AddModelError("", "Tämä sähköpostiosoite on jo rekisteröity"); return(View()); //jos sähköposti löytyy niin käyttäjä palautetaan samaan näkymään. Tämän ei pitäisi poistaa jo syötettyjä tietoja. } #endregion #region Generate Activation Code oppkirjautuminen.aktivointiKoodi = Guid.NewGuid(); #endregion //#region Password Hashing //user.salasana = Crypto.Hash(user.salasana); ////salasanan tarkastus user.cs -tiedostosta (en tiedä miten toimii) //confirm.ConfirmPassword = Crypto.Hash(confirm.ConfirmPassword); // //#endregion oppkirjautuminen.onkoEmailAktivoitu = true;//muutettu trueksi koska helpompi kehittäessä... #region Tallennus tietokantaan using (Stud1Entities dc = new Stud1Entities()) { //Tietojen tallennus modelista tietokantaan... Opiskelija uusiOpis = new Opiskelija(); uusiOpis.etunimi = opiskelija.etunimi; uusiOpis.etunimi = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(uusiOpis.etunimi.ToLower()); //muutetaan ensimmäinen kirjain isoksi, koska käyttäjä uusiOpis.sukunimi = opiskelija.sukunimi; uusiOpis.sukunimi = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(uusiOpis.sukunimi.ToLower()); //muutetaan ensimmäinen kirjain isoksi, koska käyttäjä uusiOpis.opiskelija_Id = opiskelija.opiskelija_Id; string opiskelijanpostinumero = pstmp.postinumero; try { //Postitoimipaikka id:n haku postinumeron perusteella uusiOpis.postitoimipaikka_Id = (from x in db.Postitoimipaikka where x.postinumero == opiskelijanpostinumero select x.postitoimipaikka_Id).First(); } catch (Exception) { TempData["rekisterointiEpaonnistui"] = "Rekisteröinti epäonnistui! Virheen jatkuessa ota yhteyttä tukeemme."; return(RedirectToAction("Login")); } Login uusiKirj = new Login(); uusiKirj.opiskelija_Id = opiskelija.opiskelija_Id; uusiKirj.kayttajaNimi = oppkirjautuminen.kayttajaNimi; uusiKirj.salasana = oppkirjautuminen.salasana; uusiKirj.aktivointiKoodi = oppkirjautuminen.aktivointiKoodi; uusiKirj.onkoEmailAktivoitu = oppkirjautuminen.onkoEmailAktivoitu; PuhelinNumero uusiPuhO = new PuhelinNumero(); uusiPuhO.numero = puhelinnro.numero; uusiPuhO.opiskelija_Id = opiskelija.opiskelija_Id; Sahkoposti uusiSpostiO = new Sahkoposti(); uusiSpostiO.sahkopostiOsoite = oppkirjautuminen.kayttajaNimi; uusiSpostiO.opiskelija_Id = opiskelija.opiskelija_Id; OmaSisalto uusiOmasis = new OmaSisalto(); uusiOmasis.opiskelija_Id = opiskelija.opiskelija_Id; uusiOmasis.omaKuva = "/Content/Images/avatar.png"; dc.Opiskelija.Add(uusiOpis); dc.PuhelinNumero.Add(uusiPuhO); dc.Sahkoposti.Add(uusiSpostiO); dc.OmaSisalto.Add(uusiOmasis); dc.Login.Add(uusiKirj); dc.SaveChanges(); TempData["rekisterointiOnnistui"] = "Rekisteröinti onnistui! Voit nyt kirjautua sisään."; ////Kutsutaan aktivointisähköpostin lähetysmetodia... //SendVerificationLinkEmail(user.kayttajaNimi, user.aktivointiKoodi.ToString()); //message = "Rekisteröityminen onnistui. Rekisteröitymisen aktivointilinkki " + // " on lähetetty sähköpostiinne:" + user.kayttajaNimi; //Status = true; } #endregion } else { TempData["rekisterointiEpaonnistui"] = "Rekisteröinti epäonnistui! Tarkista postinumero, virheen jatkuessa ota yhteyttä tukeemme."; message = "Virhe käsiteltäessä pyyntöä!"; } ViewBag.Message = message; ViewBag.Status = Status; return(RedirectToAction("Login")); //palautuu tällä hetkellä login viewiin, pitäisi varmaan käyttää sähköpostiosoitteen validointia tai rekisteröityminen onnistui sivua jos aikaa jää.... }
//Määritellään OppilasRekisterointi.cshtml syötettyjen tietojen tallennuspaikka (luokkaan)... public ActionResult OppilasRekisterointi( [Bind(Prefix = "Item1")] LoginModel oppkirjautuminen, [Bind(Prefix = "Item2")] OpiskelijaModel opiskelija, [Bind(Prefix = "Item4")] PuhelinNumeroModel puhelinnro ) { bool Status = false; string message = ""; // // Model Validation if (ModelState.IsValid) { #region //Email already Exist //Login oppTarkastus = new Login(); var isExist = IsEmailExist(oppkirjautuminen.kayttajaNimi); if (isExist) { //TempData["EmailExist"] = "Tämä sähköpostiosoite on jo rekisteröity"; //ModelState.AddModelError("EmailExist", "Tämä sähköpostiosoite on jo rekisteröity"); ModelState.AddModelError("", "Tämä sähköpostiosoite on jo rekisteröity"); return(View()); //jos sähköposti löytyy niin käyttäjä palautetaan samaan näkymään. Tämän ei pitäisi poistaa jo syötettyjä tietoja. } #endregion #region Generate Activation Code oppkirjautuminen.aktivointiKoodi = Guid.NewGuid(); #endregion //#region Password Hashing //user.salasana = Crypto.Hash(user.salasana); ////salasanan tarkastus user.cs -tiedostosta (en tiedä miten toimii) //confirm.ConfirmPassword = Crypto.Hash(confirm.ConfirmPassword); // //#endregion oppkirjautuminen.onkoEmailAktivoitu = true;//muutettu trueksi koska helpompi kehittäessä... #region Tallennus tietokantaan using (Stud1Entities dc = new Stud1Entities()) { //Tietojen tallennus modelista tietokantaan... Opiskelija uusiOpis = new Opiskelija(); uusiOpis.etunimi = opiskelija.etunimi; uusiOpis.sukunimi = opiskelija.sukunimi; uusiOpis.opiskelija_Id = opiskelija.opiskelija_Id; Login uusiKirj = new Login(); uusiKirj.opiskelija_Id = opiskelija.opiskelija_Id; uusiKirj.kayttajaNimi = oppkirjautuminen.kayttajaNimi; uusiKirj.salasana = oppkirjautuminen.salasana; uusiKirj.aktivointiKoodi = oppkirjautuminen.aktivointiKoodi; uusiKirj.onkoEmailAktivoitu = oppkirjautuminen.onkoEmailAktivoitu; PuhelinNumero uusiPuhO = new PuhelinNumero(); uusiPuhO.numero = puhelinnro.numero; uusiPuhO.opiskelija_Id = opiskelija.opiskelija_Id; Sahkoposti uusiSpostiO = new Sahkoposti(); uusiSpostiO.sahkopostiOsoite = oppkirjautuminen.kayttajaNimi; uusiSpostiO.opiskelija_Id = opiskelija.opiskelija_Id; OmaSisalto uusiOmasis = new OmaSisalto(); uusiOmasis.opiskelija_Id = opiskelija.opiskelija_Id; dc.Opiskelija.Add(uusiOpis); dc.PuhelinNumero.Add(uusiPuhO); dc.Sahkoposti.Add(uusiSpostiO); dc.OmaSisalto.Add(uusiOmasis); dc.Login.Add(uusiKirj); dc.SaveChanges(); ////Kutsutaan aktivointisähköpostin lähetysmetodia... //SendVerificationLinkEmail(user.kayttajaNimi, user.aktivointiKoodi.ToString()); //message = "Rekisteröityminen onnistui. Rekisteröitymisen aktivointilinkki " + // " on lähetetty sähköpostiinne:" + user.kayttajaNimi; //Status = true; } #endregion } else { message = "Virhe käsiteltäessä pyyntöä!"; } ViewBag.Message = message; ViewBag.Status = Status; return(RedirectToAction("Login")); //palautuu tällä hetkellä login viewiin, pitäisi varmaan käyttää sähköpostiosoitteen validointia tai rekisteröityminen onnistui sivua jos aikaa jää.... }