Exemple #1
0
        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));
        }
Exemple #2
0
        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));
        }
Exemple #3
0
        //****************************************************************
        //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));
            }
        }
Exemple #4
0
 public bool IsEmailExist(string emailID)
 {
     using (Stud1Entities dc = new Stud1Entities())
     {
         var v = dc.Login.Where(a => a.kayttajaNimi == emailID).FirstOrDefault();
         return(v != null);
     }
 }
Exemple #5
0
        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());
        }
Exemple #6
0
        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());
        }
Exemple #7
0
        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());
        }
Exemple #8
0
        //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ää....
        }
Exemple #12
0
        //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ää....
        }