예제 #1
0
        public ActionResult Registration([Bind(Exclude = "IsEmailVerified,ActivationCode")] User user)
        {
            bool Status = false;
            string message = "";

            // Walidacja modelu uzytkownika 
            if (ModelState.IsValid)
            {

                // czy email istnieje
                bool isExist = SqlUser.CheckUserExists(user.Email);
                if (isExist)
                {
                    ViewBag.Message = Resources.Texts.EmailExistsMessage;
                    ModelState.AddModelError("EmailExist", Resources.Texts.EmailExistsMessage);
                    return View(user);
                }

                // generowanie kodu aktywacji
                user.ActivationCode = Guid.NewGuid().ToString();

                // hashing hasla
                user.Password = Crypto.Hash(user.Password);

                user.IsEmailVeryfied = false;
                user.RoleID = SqlDatabase.UserRoleId;  // domyślnie dodawany użytkownik o roli zwykłego user'a
                user.CustomerID = SqlDatabase.CustomerAtr;  // dodanie adresu użytkownika - atrapa, żeby baza przyjęła dane

                //zapis do bazy danych
                SqlUser.InsertUser(user);

                // wyslanie emaila do uzytkownika
                SendVerificationLinkEmail(user.Email, user.ActivationCode, user.FirstName);
                message = Resources.Texts.EmailVerificationMessage + user.Email;
                Status = true;
       
            }
            else
            {
                message = Resources.Texts.InvalidRequest;
            }

            ViewBag.Message = message;
            ViewBag.Status = Status;
            return View(user);
        }