Example #1
0
        public BusinessLayerResult <MyNotesUser> RegisterUser(RegisterViewModel model)
        {
            ///////////////////////////////////////////////////////////////////////////////////////////////////////////
            //Kullanıcı e-mail ve username kotrolü.
            //Kayıt işlem.
            //Activasyon e-postası gönderimi.
            ///////////////////////////////////////////////////////////////////////////////////////////////////////////

            //Register Page'den gelen model nesnesinin  'Username' ve 'Email' attributeleri User tablosunda var mı?
            MyNotesUser user = repo_user.Find(x => x.Username == model.Username || x.Email == model.EMail);

            //Bu class nesnesi, bulunduğumuz metodunun dönüş tipidir. Error listesi ve kayıt olan kullanıcı verisini tutar.
            BusinessLayerResult <MyNotesUser> RegisterResult = new BusinessLayerResult <MyNotesUser>();


            // Error Kontrolü
            if (user != null)
            {
                if (user.Username == model.Username)
                {
                    RegisterResult.AddError(ErrorMessageCode.UsernameAlreadyExists, "Username alanı kullanılıyor.");
                }
                if (user.Email == model.EMail)
                {
                    RegisterResult.AddError(ErrorMessageCode.EmailAlreadyExists, "E-Posta adresi kullanılıyor.");
                }
            }
            // db Insert User
            else
            {
                int insertResult = repo_user.Insert(new MyNotesUser()
                {
                    Username     = model.Username,
                    Email        = model.EMail,
                    Password     = model.Password,
                    ActivateGuid = Guid.NewGuid(),
                    IsActive     = false,
                    IsAdmin      = false
                });

                // db Insert Success
                if (insertResult > 0)
                {
                    // Get User > User Set to RegisterResult
                    RegisterResult.Result = repo_user.Find(x => x.Username == model.Username || x.Email == model.EMail);

                    // Mail Context
                    string siteUri     = ConfigHelper.Get <string>("SiteRootUri");
                    string activateUri = $"{siteUri}/Home/UserActivate/{RegisterResult.Result.ActivateGuid}";
                    string body        = $"Merhaba {RegisterResult.Result.Username};<br><br>Hesabınızı aktifleştirmek için <a href='{activateUri}' target='_blank'>tıklayınız</a>.";

                    MailHelper.SendMail(body, RegisterResult.Result.Email, "MyNotes Hesap Aktifleştirme");
                }
            }

            //RegisterResult: Hata varsa hata mesajlarını veya kullanıcı eklendiyse kullanıcı bilgisini barındırır.
            return(RegisterResult);
        }
        public string GetCurrentUsername()
        {
            if (HttpContext.Current.Session["login"] != null)
            {
                MyNotesUser user = (MyNotesUser)HttpContext.Current.Session["login"];
                return(user.Username);
            }

            return("system");
        }