//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 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ää.... }
//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ää.... }