Example #1
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));
        }