public BusinessLayerResult <User> LoginUser(LoginViewModel data) { // Giriş kontrolü // Hesap aktive edilmiş mi? BusinessLayerResult <User> res = new BusinessLayerResult <User>(); res.Result = Find(x => x.Username == data.Username && x.Password == data.Password); if (res.Result != null) { //if (!res.Result.IsActive) //{ // res.AddError(ErrorMessageCode.UserIsNotActive, "Kullanıcı aktifleştirilmemiştir."); // res.AddError(ErrorMessageCode.CheckYourEmail, "Lütfen e-posta adresinizi kontrol ediniz."); //} } else { res.AddError(ErrorMessageCode.UsernameOrPassWrong, "Kullanıcı adı yada şifre uyuşmuyor."); } return(res); }
// Data AccessLayerdaki Repository<T(Generic class)> nesnemizi(EvernoteUser) oluşturuyoruz. // private Repository<EvernoteUser> repo_user = new Repository<EvernoteUser>(); // Kullanıcı kayıt yapmak için yazılmış fonksiyon. public BusinessLayerResult <EvernoteUser> RegisterUser(RegisterViewModel data) { // RegisterViewModel username,email,sifre,resifre -> data.(PROP) /* * Yapılacaklar * Kullanıcı username kontrolü * Kullanıcı eposta kontrolü * Kayıt işlemi * Aktivasyon e postası gönderimi */ // Kullanıcının yazdığı Username veya Email data'nın içindeki yani veri tabanının içinde var mı diye kontrol yapıyoruz. // Eğer var ise user null olmuyor , yok ise null oluyor buna göre kontrol yapacağız. EvernoteUser user = Find(x => x.UserName == data.Username || x.Email == data.Email); // Find -> Repository fonksiyon. // Hata mesajları için nesne oluşturuyoruz BusinessLayerResult <EvernoteUser> layerResult = new BusinessLayerResult <EvernoteUser>(); if (user != null) // Eğer kullanıcı var ise { // Kullanıcı adı veri tabanında mevcut ise yani kullanıcı daha önceden kayıt olmuş //yada başka birinin kullanıcı adı ile kayıt olmaya çalışıyor olabilir. if (user.UserName == data.Username) { // layerResult.Errors.Add("Kullanıcı Adı kayıtlı."); layerResult.AddError(ErrorMessageCode.UsernameAlreadyExists, "Kullanıcı adı kayıtlı."); // Hata mesajımız. } // Email veri tabanında mevcut ise yani kullanıcı daha önceden kayıt olmuş //yada başka birinin Email'i ile kayıt olmaya çalışıyor olabilir. if (user.Email == data.Email) { // layerResult.Errors.Add("E-Posta adresi kayıtlı."); layerResult.AddError(ErrorMessageCode.EmailAlreadyExists, "E-posta adresi kayıtlı."); // Hata mesajımız. } } // Kullanıcı yok -> ise register(kayıt olma) yapacağız else { // Ekleme int dbResult = base.Insert(new EvernoteUser() // int dbresult tanımlamamızın sebebi eğer kayıt yapılırsa dbresult değeri 1 artıyor ve veri tabanına bakarak eklendiğini anlıyoruz. { UserName = data.Username, Email = data.Email, ProfileImageFilename = "user.jpg", Password = data.Password, ActivateGuid = Guid.NewGuid(), // Rastgele aktivasyon kodu gönderme IsActive = false, // aktivasyon kodunu onayladı mı ? IsAdmin = false, // Yönetici mi ? }); if (dbResult > 0) // Eğer eklenmiş ise { layerResult.Result = Find(x => x.Email == data.Email && x.UserName == data.Username); // TODO : activasyon maili atılacak. // layerResult.Result.ActivateGuid string siteUri = ConfigHelper.Get <string>("SiteRootUri"); string activateUri = $"{siteUri}/Home/UserActivate/{layerResult.Result.ActivateGuid}"; string body = $"Merhaba {layerResult.Result.UserName};<br><br> Kesabınızı aktifleştirmek için <a href =' {activateUri}' " + $"target='_blank'>tıklayınız.</a>"; MailHelper.SendMail(body, layerResult.Result.Email, "MyEvernote Hesap Aktifleştirme", true); // https://support.google.com/accounts/answer/6010255?hl=tr } } return(layerResult); }