public virtual ActionResult Ekle(KullanıcıModel model, bool düzenlemeyeDevam, FormCollection form) { if (!_izinServisi.YetkiVer(StandartİzinSağlayıcı.KullanıcılarıYönet)) { return(ErişimEngellendiView()); } if (!String.IsNullOrWhiteSpace(model.Email)) { var user2 = _kullanıcıServisi.KullanıcıAlEmail(model.Email); if (user2 != null) { ModelState.AddModelError("", "Email zaten kayıtlı"); } } if (!String.IsNullOrWhiteSpace(model.KullanıcıAdı) & _kullanıcıAyarları.KullanıcıAdlarıEtkin) { var user2 = _kullanıcıServisi.KullanıcıAlKullanıcıAdı(model.KullanıcıAdı); if (user2 != null) { ModelState.AddModelError("", "Kullanıcı adı zaten alındı"); } } //kullanıcı rolü doğrula var tümKullanıcıRolleri = _kullanıcıServisi.TümKullanıcıRolleriniAl(true); var yeniKullanıcıRolleri = new List <KullanıcıRolü>(); foreach (var kullanıcıRolü in tümKullanıcıRolleri) { if (model.SeçiliKullanıcıRolIdleri.Contains(kullanıcıRolü.Id)) { yeniKullanıcıRolleri.Add(kullanıcıRolü); } } var kullanıcıRolüHatası = KullanıcıRolüDoğrula(yeniKullanıcıRolleri); if (!String.IsNullOrEmpty(kullanıcıRolüHatası)) { ModelState.AddModelError("", kullanıcıRolüHatası); HataBildirimi(kullanıcıRolüHatası, false); } //email adresini doğrula if (yeniKullanıcıRolleri.Any() && yeniKullanıcıRolleri.FirstOrDefault(c => c.SistemAdı == SistemKullanıcıRolAdları.Kayıtlı) != null && !GenelYardımcı.GeçerliMail(model.Email)) { ModelState.AddModelError("", "Müşterinin 'Kayıtlı' rolü olması için geçerli e-posta gereklidir."); HataBildirimi("Müşterinin 'Kayıtlı' rolü olması için geçerli e-posta gereklidir", false); } //özel kullanıcı özniteliği /* * var kullanıcıAttributesXml = ParseCustomCustomerAttributes(form); * if (newCustomerRoles.Any() && newCustomerRoles.FirstOrDefault(c => c.SystemName == SystemCustomerRoleNames.Registered) != null) * { * var kullanıcıAttributeWarnings = _kullanıcıAttributeParser.GetAttributeWarnings(kullanıcıAttributesXml); * foreach (var error in kullanıcıAttributeWarnings) * { * ModelState.AddModelError("", error); * } * } */ if (ModelState.IsValid) { var kullanıcı = new Kullanıcı { KullanıcıGuid = Guid.NewGuid(), Email = model.Email, KullanıcıAdı = model.KullanıcıAdı, AdminYorumu = model.AdminYorumu, Aktif = model.Aktif, ŞuTarihdeOluşturuldu = DateTime.UtcNow, SonİşlemTarihi = DateTime.UtcNow, KayıtOlduSiteId = _siteContext.MevcutSite.Id }; _kullanıcıServisi.KullanıcıEkle(kullanıcı); //form alanları if (_kullanıcıAyarları.CinsiyetEtkin) { _genelÖznitelikServisi.ÖznitelikKaydet(kullanıcı, SistemKullanıcıÖznitelikAdları.Cinsiyet, model.Cinsiyet); } _genelÖznitelikServisi.ÖznitelikKaydet(kullanıcı, SistemKullanıcıÖznitelikAdları.Adı, model.Adı); _genelÖznitelikServisi.ÖznitelikKaydet(kullanıcı, SistemKullanıcıÖznitelikAdları.Soyadı, model.Soyadı); if (_kullanıcıAyarları.DoğumTarihiEtkin) { _genelÖznitelikServisi.ÖznitelikKaydet(kullanıcı, SistemKullanıcıÖznitelikAdları.DoğumTarihi, model.DoğumGünü); } if (_kullanıcıAyarları.ŞirketEtkin) { _genelÖznitelikServisi.ÖznitelikKaydet(kullanıcı, SistemKullanıcıÖznitelikAdları.Şirket, model.Şirket); } if (_kullanıcıAyarları.SokakAdresiEtkin) { _genelÖznitelikServisi.ÖznitelikKaydet(kullanıcı, SistemKullanıcıÖznitelikAdları.SokakAdresi1, model.SokakAdresi); } if (_kullanıcıAyarları.SokakAdresi2Etkin) { _genelÖznitelikServisi.ÖznitelikKaydet(kullanıcı, SistemKullanıcıÖznitelikAdları.SokakAdresi2, model.SokakAdresi2); } if (_kullanıcıAyarları.PostaKoduEtkin) { _genelÖznitelikServisi.ÖznitelikKaydet(kullanıcı, SistemKullanıcıÖznitelikAdları.PostaKodu, model.PostaKodu); } if (_kullanıcıAyarları.ŞehirEtkin) { _genelÖznitelikServisi.ÖznitelikKaydet(kullanıcı, SistemKullanıcıÖznitelikAdları.Şehir, model.Şehir); } if (_kullanıcıAyarları.ÜlkeEtkin) { _genelÖznitelikServisi.ÖznitelikKaydet(kullanıcı, SistemKullanıcıÖznitelikAdları.ÜlkeId, model.ÜlkeId); } if (_kullanıcıAyarları.TelEtkin) { _genelÖznitelikServisi.ÖznitelikKaydet(kullanıcı, SistemKullanıcıÖznitelikAdları.Tel, model.Tel); } if (_kullanıcıAyarları.FaksEtkin) { _genelÖznitelikServisi.ÖznitelikKaydet(kullanıcı, SistemKullanıcıÖznitelikAdları.Fax, model.Faks); } //özel kullanıcı öznitelikleri //_genelÖznitelikServisi.ÖznitelikKaydet(kullanıcı, SistemKullanıcıÖznitelikAdları.ÖzelKullanıcıÖznitelikleri, kullanıcıÖznitelikXml); //abonelik kaydı if (!String.IsNullOrEmpty(kullanıcı.Email)) { var tümSiteler = _siteServisi.TümSiteler(); foreach (var site in tümSiteler) { var bültenAboneliği = _bültenAbonelikServisi .BültenAboneliğiAlEmailVeSiteId(kullanıcı.Email, site.Id); if (model.SeçiliAbonleikKayıtları != null && model.SeçiliAbonleikKayıtları.Contains(site.Id)) { //abone olundu if (bültenAboneliği == null) { _bültenAbonelikServisi.BültenAboneliğiEkle(new BültenAboneliği { BültenAboneliğiGuid = Guid.NewGuid(), Email = kullanıcı.Email, Aktif = true, SiteId = site.Id, OluşturulmaTarihi = DateTime.UtcNow }); } } else { //abone olunmadı if (bültenAboneliği != null) { _bültenAbonelikServisi.BültenAboneliğiSil(bültenAboneliği); } } } } //şifre if (!String.IsNullOrWhiteSpace(model.Şifre)) { var şifreİsteğiniDeğiştir = new ŞifreDeğiştirmeİsteği(model.Email, false, _kullanıcıAyarları.VarsayılanŞifreFormatı, model.Şifre); var şifreDeğiştiSonucu = _kullanıcıKayıtServisi.ŞifreDeğiştir(şifreİsteğiniDeğiştir); if (!şifreDeğiştiSonucu.Başarılı) { foreach (var şifreDeğiştirmeHatası in şifreDeğiştiSonucu.Hatalar) { HataBildirimi(şifreDeğiştirmeHatası); } } } //kullanıcı rolleri foreach (var kullanıcıRolü in yeniKullanıcıRolleri) { //Yönetici olmadığından emin ol if (kullanıcıRolü.SistemAdı == SistemKullanıcıRolAdları.Yönetici && !_workContext.MevcutKullanıcı.Yönetici()) { continue; } kullanıcı.KullanıcıRolleri.Add(kullanıcıRolü); } _kullanıcıServisi.KullanıcıGüncelle(kullanıcı); //işlem kaydı _kullanıcıİşlemServisi.İşlemEkle("YeniKullanıcı", "Yeni kullanıcı eklendi", kullanıcı.Id); BaşarılıBildirimi("Kullanıcı Eklendi"); if (düzenlemeyeDevam) { //seçili tab SeçiliTabKaydet(); return(RedirectToAction("Düzenli", new { id = kullanıcı.Id })); } return(RedirectToAction("Liste")); } //sorun olduysa form yeniden doldur KullanıcıModelHazırla(model, null, true); return(View(model)); }