예제 #1
0
 public ActionResult Bekräftelse()
 {
     try
     {
         var view = new AnvändareModel();
         view = TempData["NyAnvändare"] as AnvändareModel; //hämtar den ny användaren och visar den
         return(View(view));
     }
     catch (Exception)
     {
         throw;
     }
 }
예제 #2
0
        public List <MeddelandeModel> getMeddelande(string användarnamn)
        {
            var            ctx       = new AnvändareDbContext();
            AnvändareModel användare = new AnvändareModel();

            foreach (var användaren in ctx.användare)
            {
                if (användaren.AnvändarNamn == användarnamn)
                {
                    användare = användaren;
                }
            }

            return(användare.Meddelanden.ToList());
        }
예제 #3
0
        public ActionResult ValidateLogin(AnvändareModel model)
        {
            try
            {
                var ctx = new AnvändareDbContext();
                //Kontrollerar inputen ifrån login
                if (model.AnvändarNamn != null && model.AnvändarNamn != "" && model.Lössenord != null && model.Lössenord != "" && ctx.användare.Any(x => x.AnvändarNamn == model.AnvändarNamn))
                {
                    //kollar lössenordet med hjälp av att avkrypter de som finns
                    bool resultat    = false;
                    var  PWEncrypter = new PasswordEncrypter();
                    resultat = PWEncrypter.ValidatePW(model.AnvändarNamn, model.Lössenord);

                    if (resultat == true)
                    {
                        AnvändareInloggadVerifeierare.användaren = ctx.användare.Single(x => x.AnvändarNamn == model.AnvändarNamn); // Sätter modellen till vår "AIV" klass
                    }
                    // då kommer vi åt den inloggades model överallt


                    if (resultat == true && AnvändareInloggadVerifeierare.användaren.IsActive == true)
                    {
                        AnvändareInloggadVerifeierare.isInloogad = true; // kollar så det är sant och att profilen är aktiv
                        return(RedirectToAction("UserPage"));            // sätter att man är inloggad till sant
                    }
                    else if (resultat == true && AnvändareInloggadVerifeierare.användaren.IsActive == false)
                    {
                        AnvändareInloggadVerifeierare.isInloogad = true;    // om kontot är icke aktiv så kommmer man till
                        return(View("InaktiveratKonto"));                   // "InaktiveratKonto"
                    }

                    else
                    {
                        ViewData["errorFältTomt"] = "Fel användarnamn eller lösenord, försök igen!";
                        return(View("Login"));
                    }
                }
                else
                {
                    ViewData["errorFältTomt"] = "Fel användarnamn eller lösenord, försök igen!";
                    return(View("Login"));  // Kollar så att man inte ändrar till ett användarnamn som finns
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
예제 #4
0
 public List <BesökareModels> GetBesökare(int id)
 {
     // Hämtar alla besökare
     try
     {
         AnvändareModel användaren = new AnvändareModel();
         foreach (var användare in db.användare)
         {
             if (användare.ID == id)
             {
                 användaren = användare;
             }
         }
         List <BesökareModels> sortedList = användaren.allaBesökare.OrderByDescending(p => p.ID).ToList();
         return(sortedList);
     }
     catch (Exception)
     {
         throw;
     }
 }
예제 #5
0
        public void PostMeddelandeTaBort(int[] idn)
        {
            // Ta bort meddelande
            try
            {
                int meddelandeid = idn[0];
                int inloggadid   = idn[1];
                List <MeddelandeModel> meddelanden = new List <MeddelandeModel>();
                AnvändareModel         användaren  = new AnvändareModel();
                foreach (var användare in db.användare)
                {
                    if (användare.ID == inloggadid)
                    {
                        användaren  = användare;
                        meddelanden = användare.allaMeddelanden;
                    }
                }



                if (meddelanden.Count > 0)
                {
                    foreach (var meddelande in meddelanden)
                    {
                        if (meddelande.ID == meddelandeid)
                        {
                            användaren.allaMeddelanden.Remove(meddelande);
                            db.meddelanden.Remove(meddelande);
                            break;
                        }
                    }
                }

                db.SaveChanges();
            }
            catch (Exception)
            {
                throw;
            }
        }
예제 #6
0
        public ActionResult EditUser(AnvändareModel model, HttpPostedFileBase File1)
        {
            try
            {
                AnvändareDbContext db         = new AnvändareDbContext();
                AnvändareModel     användare1 = db.användare.FirstOrDefault(a => a.AnvändarNamn.Equals(model.AnvändarNamn));
                AnvändareModel     användare2 = db.användare.FirstOrDefault(a => a.Epost.Equals(model.Epost));
                // Hämtar model för epost respektive användarnamn


                var födelse    = model.Födelsedatum;
                var datumarray = födelse.Split('-');
                var året       = datumarray[0]; // Kollar så personen har vettig ålder
                var intåret    = Int32.Parse(året);
                if (intåret < 1920 || intåret > 2002)
                {
                    ViewData["errorfödelse"] = "Angivit fel födelsedatum, bara mellan 1920 till 2002 tillåtet";
                    return(View("EditUser"));
                }

                var förnamn   = model.Förnamn = model.Förnamn.Substring(0, 1).ToUpper() + model.Förnamn.Substring(1); //Gör om första bokstaven till stor ifall man angav liten
                var efternamn = model.Efternamn.Substring(0, 1).ToUpper() + model.Efternamn.Substring(1);

                var   pattern = "^([A-ZÅÄÖa-zåäö]+)$"; //Regex som kontrollerar förnamn/efternamn tecken a-ö
                Regex rgx     = new Regex(pattern);

                if (!rgx.IsMatch(förnamn))
                {
                    return(View("EditUser"));
                }

                if (!rgx.IsMatch(efternamn))
                {
                    return(View("EditUser"));
                }

                if (model.Förnamn == null || model.Förnamn == "")
                {
                    return(View("EditUser"));            // validerar så att det inte är tomt
                }
                if (model.Efternamn == null || model.Efternamn == "")
                {
                    return(View("EditUser"));
                }
                if (model.AnvändarNamn == null || model.AnvändarNamn == "")
                {
                    return(View("EditUser"));
                }
                if (model.Lössenord == null || model.Lössenord == "")
                {
                    return(View("EditUser"));
                }

                if (db.användare.Any(a => a.AnvändarNamn.Equals(model.AnvändarNamn)) && AnvändareInloggadVerifeierare.användaren.ID != användare1.ID)
                {
                    ViewData["erroranvändarnamn"] = "Användarnamn upptaget";
                    return(View("EditUser"));  // Kollar så att man inte ändrar till ett användarnamn som finns
                }
                if (db.användare.Any(a => a.Epost.Equals(model.Epost)) && AnvändareInloggadVerifeierare.användaren.ID != användare2.ID)
                {
                    ViewData["errorepost"] = "Epost upptaget";
                    return(View("EditUser"));            // Kollar så att man inte ändrar till en epost som finns
                }
                if (ModelState.IsValid && File1 == null) // om användare inte väljer ny bild
                {
                    int            id        = model.ID;
                    AnvändareModel användare = db.användare.FirstOrDefault(a => a.ID.Equals(id)); // Hämta användare



                    användare.Efternamn    = model.Efternamn;
                    användare.Förnamn      = model.Förnamn;
                    användare.Födelsedatum = model.Födelsedatum;    // uppdatera i databasen
                    användare.Epost        = model.Epost;
                    användare.AnvändarNamn = model.AnvändarNamn;

                    //Kryptera det nya lössenordet
                    var encrypter       = new PasswordEncrypter();
                    var nyttPwEncrypted = encrypter.EncryptPassword(model.Lössenord);
                    användare.Lössenord = nyttPwEncrypted;


                    AnvändareInloggadVerifeierare.användaren.Förnamn      = förnamn;
                    AnvändareInloggadVerifeierare.användaren.Efternamn    = efternamn;
                    AnvändareInloggadVerifeierare.användaren.Epost        = model.Epost;            // uppdaterar direkt
                    AnvändareInloggadVerifeierare.användaren.Födelsedatum = model.Födelsedatum;
                    AnvändareInloggadVerifeierare.användaren.AnvändarNamn = model.AnvändarNamn;
                    AnvändareInloggadVerifeierare.användaren.Lössenord    = model.Lössenord;
                    AnvändareInloggadVerifeierare.användaren.IsActive     = model.IsActive;



                    db.Entry(användare).State = EntityState.Modified;
                    db.SaveChanges();
                    return(RedirectToAction("UserPage"));
                }

                if (ModelState.IsValid && File1 != null && File1.ContentLength > 0 && File1.ContentType.Equals("image/jpeg") || File1.ContentType.Equals("image/png"))
                {
                    int            id        = model.ID;                                          // om användaren väljer att byta bild + annan information så körs denna if sats
                    AnvändareModel användare = db.användare.FirstOrDefault(a => a.ID.Equals(id)); // Hämta användare


                    model.Profilbild = new byte[File1.ContentLength]; // Gör om filen man valt till En byte[]
                    File1.InputStream.Read(model.Profilbild, 0, File1.ContentLength);



                    användare.Profilbild = model.Profilbild;
                    AnvändareInloggadVerifeierare.användaren.Profilbild = model.Profilbild;

                    användare.Efternamn    = model.Efternamn;
                    användare.Förnamn      = model.Förnamn;
                    användare.Födelsedatum = model.Födelsedatum;    // uppdatera i databasen
                    användare.Epost        = model.Epost;
                    användare.Lössenord    = model.Lössenord;
                    användare.IsActive     = model.IsActive;
                    användare.AnvändarNamn = model.AnvändarNamn;

                    AnvändareInloggadVerifeierare.användaren.Förnamn      = model.Förnamn;
                    AnvändareInloggadVerifeierare.användaren.Efternamn    = model.Efternamn;
                    AnvändareInloggadVerifeierare.användaren.Epost        = model.Epost;            // uppdaterar direkt
                    AnvändareInloggadVerifeierare.användaren.Födelsedatum = model.Födelsedatum;
                    AnvändareInloggadVerifeierare.användaren.AnvändarNamn = model.AnvändarNamn;
                    AnvändareInloggadVerifeierare.användaren.Lössenord    = model.Lössenord;
                    AnvändareInloggadVerifeierare.användaren.IsActive     = model.IsActive;



                    db.Entry(användare).State = EntityState.Modified;
                    db.SaveChanges();
                    return(RedirectToAction("UserPage"));
                }
                else if (File1 != null && File1.ContentLength > 0 && !File1.ContentType.Equals("image/jpeg") || !File1.ContentType.Equals("image/png"))

                { // om det är fel format på bilden
                    ViewData["error"] = "Fel format på bilden, Bara .jpg och .png är tillåtna";
                    return(View("EditUser"));
                }

                return(RedirectToAction("UserPage"));
            }
            catch (Exception)
            {
                throw;
            }
        }
예제 #7
0
        public ActionResult addAnvändare(AnvändareModel model, HttpPostedFileBase File1)
        {
            try
            {
                var ctx = new AnvändareDbContext();
                var passwordEncrypter = new PasswordEncrypter();


                var födelse    = model.Födelsedatum;
                var datumarray = födelse.Split('-');
                var året       = datumarray[0]; // Kollar så personen har vettig ålder
                var intåret    = Int32.Parse(året);
                if (intåret < 1920 || intåret > 2002)
                {
                    ViewData["errorfödelse"] = "Angivit fel födelsedatum, bara mellan 1920 till 2002 tillåtet";
                    return(View("CreateAcc"));
                }


                if (model.Lössenord == null || model.Lössenord == "")
                {
                    return(View("CreateAcc"));
                }
                if (File1 == null)
                {
                    ViewData["error"] = "Du måste ladda upp en bild";
                    return(View("CreateAcc"));
                }
                if (File1 != null && File1.ContentLength > 0 && File1.ContentType.Equals("image/jpeg") || File1.ContentType.Equals("image/png"))
                {
                    var encryptedPass = passwordEncrypter.EncryptPassword(model.Lössenord);
                    model.Lössenord = encryptedPass; // krypterar lösenordet

                    model.Förnamn   = model.Förnamn.Substring(0, 1).ToUpper() + model.Förnamn.Substring(1);
                    model.Efternamn = model.Efternamn.Substring(0, 1).ToUpper() + model.Efternamn.Substring(1); // Gör att förnamn och efternamn första bokstav sparas som en stor bokstav

                    model.Profilbild = new byte[File1.ContentLength];                                           // Gör om filen man valt till En byte[]
                    File1.InputStream.Read(model.Profilbild, 0, File1.ContentLength);
                    ctx.användare.Add(model);
                    ctx.SaveChanges();    // kollar så att filen är av jpeg, png och att det finns en fil
                                          // sparar hela användaren i databasen
                    var nyaanvändarenMedID = new AnvändareModel();
                    foreach (var användare in ctx.användare)
                    {
                        if (användare.AnvändarNamn.Equals(model.AnvändarNamn))
                        {
                            nyaanvändarenMedID = användare;   // hämtar den nya användaren från databasen och skickar
                        }                                     // till bekräftelse
                    }
                    TempData["NyAnvändare"] = nyaanvändarenMedID;

                    return(RedirectToAction("Bekräftelse", "Användare"));
                }
                ViewData["error"] = "Fel format på bilden, Bara .jpg och .png är tillåtna";
                return(View("CreateAcc"));
            }
            catch (Exception)
            {
                throw;
            }
        }