private async Task SaveUserAsync()
        {
            try
            {
                var user = new User
                {
                    Name     = txtName.Text,
                    Email    = txtEmail.Text,
                    Password = passwordEncrypter.EncryptPassword(txtPassword.Text)
                };

                using (var unitOfWork = new UnitOfWork())
                {
                    await unitOfWork.UserRepository.AddAsync(user);

                    await unitOfWork.Commit();
                }

                MessageBox.Show(this, Resources.Information_AccountCreated, Resources.Information_Title_AccountCreated,
                                MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception exception)
            {
                if (exception is SqlException || exception is DbUpdateException)
                {
                    HandleDbException(exception);
                }
                else
                {
                    MessageBox.Show(this, Resources.Error_AccountCannotBeCreated, Resources.Error_Title_AccountCannotBeCreated,
                                    MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
        private async Task <bool> ValidatePassword(string localUserPassword, string dbUserPassword)
        {
            var encryptedLocalPassword = await Task.Run(() => passwordEncrypter.EncryptPassword(localUserPassword));

            if (encryptedLocalPassword != dbUserPassword)
            {
                return(false);
            }

            return(true);
        }
Пример #3
0
            public Task <int> Handle(RegisterUserRequest request, CancellationToken cancellationToken)
            {
                var model = request.Model;

                var user = new User
                {
                    Name              = model.Name,
                    Email             = model.Email,
                    EncryptedPassword = PasswordEncrypter.EncryptPassword(model.Password)
                };

                return(Task.FromResult(AddEntityCommand.Execute(user)));
            }
Пример #4
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;
            }
        }
Пример #5
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;
            }
        }