public virtual KullanıcıKayıtSonuçları KullanıcıKaydet(KullanıcıKayıtİsteği istek) { if (istek == null) { throw new ArgumentNullException("istek"); } if (istek.Kullanıcı == null) { throw new ArgumentException("Mevcut kullanıcı yüklenemedi"); } var sonuç = new KullanıcıKayıtSonuçları(); if (istek.Kullanıcı.AramaMotoruHesabı()) { sonuç.HataEkle("Arama motoru kaydedilemedi"); return(sonuç); } if (istek.Kullanıcı.ArkaPlanGöreviHesabı()) { sonuç.HataEkle("Arka plan görevi hesabı kaydedilemedi"); return(sonuç); } if (istek.Kullanıcı.IsRegistered()) { sonuç.HataEkle("Mevcut kullanıcı zaten kayıtlı"); return(sonuç); } if (String.IsNullOrEmpty(istek.Email)) { sonuç.HataEkle("E-mail sağlanamadı"); return(sonuç); } if (!GenelYardımcı.GeçerliMail(istek.Email)) { sonuç.HataEkle("Hatalı E-mail"); return(sonuç); } if (String.IsNullOrWhiteSpace(istek.Şifre)) { sonuç.HataEkle("Şifre sağlanamadı"); return(sonuç); } if (_kullanıcıAyarları.KullanıcıAdlarıEtkin) { if (String.IsNullOrEmpty(istek.KullanıcıAdı)) { sonuç.HataEkle("Kullanıcı adı sağlanamadı"); return(sonuç); } } //benzersiz kullanıcıyı doğrulama if (_kullanıcıServisi.KullanıcıAlEmail(istek.Email) != null) { sonuç.HataEkle("E-Mail adresi zaten mevcut"); return(sonuç); } if (_kullanıcıAyarları.KullanıcıAdlarıEtkin) { if (_kullanıcıServisi.KullanıcıAlKullanıcıAdı(istek.KullanıcıAdı) != null) { sonuç.HataEkle("Kullanıcı adı zaten mevcut"); return(sonuç); } } //buradan sonra istek doğrulandı istek.Kullanıcı.KullanıcıAdı = istek.KullanıcıAdı; istek.Kullanıcı.Email = istek.Email; var kullanıcıŞifre = new KullanıcıŞifre { Kullanıcı = istek.Kullanıcı, ŞifreFormatı = istek.ŞifreFormatı, OluşturulmaTarihi = DateTime.UtcNow }; switch (istek.ŞifreFormatı) { case ŞifreFormatı.Temiz: kullanıcıŞifre.Şifre = istek.Şifre; break; case ŞifreFormatı.Encrypted: kullanıcıŞifre.Şifre = _şifrelemeServisi.TextŞifrele(istek.Şifre); break; case ŞifreFormatı.Hashed: { var saltKey = _şifrelemeServisi.SaltAnahtarıOluştur(5); kullanıcıŞifre.ŞifreSalt = saltKey; kullanıcıŞifre.Şifre = _şifrelemeServisi.ŞifreHashOluştur(istek.Şifre, saltKey, _kullanıcıAyarları.HashŞifreFormatı); } break; } _kullanıcıServisi.KullanıcıŞifresiEkle(kullanıcıŞifre); istek.Kullanıcı.Aktif = istek.Onaylandı; //kayıtlı rol ekle var kayıtlıRol = _kullanıcıServisi.KullanıcıRolüAlSistemAdı(SistemKullanıcıRolAdları.Kayıtlı); if (kayıtlıRol == null) { throw new TSHata("Kayıtlı rolü eklenemedi"); } istek.Kullanıcı.KullanıcıRolleri.Add(kayıtlıRol); //ziyaretçi rolünü sil var ziyaretçiRolü = istek.Kullanıcı.KullanıcıRolleri.FirstOrDefault(cr => cr.SistemAdı == SistemKullanıcıRolAdları.Ziyaretçi); if (ziyaretçiRolü != null) { istek.Kullanıcı.KullanıcıRolleri.Remove(ziyaretçiRolü); } //Add reward points for kullanıcı registration (if enabled) // // _kullanıcıServisi.KullanıcıGüncelle(istek.Kullanıcı); //publish event _olayYayınlayıcı.Yayınla(new KullanıcıŞifreDeğiştirdiOlayı(kullanıcıŞifre)); return(sonuç); }