public async Task <IActionResult> Get(int id, [FromQuery] string neden, [FromQuery] string alanlar) { return(await KullaniciVarsaCalistir <IActionResult>(async() => { if (id <= 0) { return BadRequest(Sonuc <KullaniciYazDto> .Basarisiz(new Hata[] { new Hata { Kod = "", Tanim = SonucMesajlari.Liste[MesajAnahtarlari.SifirdanBuyukDegerGerekli] } })); } var kayit = await kullaniciRepo.BulAsync(id); if (kayit == null) { return NotFound(); } if (neden == "yaz") { var yazSonucDto = KayitSonuc <KullaniciYazDto> .IslemTamam(kayit.ToDto()); return Ok(yazSonucDto.ShapeData(alanlar)); } var resource = KayitSonuc <KullaniciDetayDto> .IslemTamam(kayit.ToKullaniciDetayDto()); return Ok(resource.ShapeData(alanlar)); })); }
public async Task <IActionResult> GirisYap([FromBody] GirisDto girisBilgileri, string returnUrl) { return(await HataKontrolluDondur <Task <IActionResult> >(async() => { var kullaniciEntity = await userManager.KullaniciyiGetirKullaniciAdinaGoreAsync(girisBilgileri.KullaniciAdi); if (kullaniciEntity == null || kullaniciEntity.Pasif) { Sonuc sonuc = Sonuc.Basarisiz(new Hata[] { new Hata { Kod = "", Tanim = "Kullanıcı yok veya aktif değil!" } }); return Ok(sonuc); } var result = await signInManager.PasswordSignInAsync(girisBilgileri.KullaniciAdi, girisBilgileri.Sifre, true, true); if (result.IsNotAllowed) { Sonuc sonuc = Sonuc.Basarisiz(new Hata[] { new Hata { Kod = "", Tanim = "Kullanıcının giriş izni yok!" } }); return Ok(sonuc); } if (result.IsLockedOut) { Sonuc sonuc = Sonuc.Basarisiz(new Hata[] { new Hata { Kod = "", Tanim = "Kullanıcı hesabı bloke!" } }); return Ok(sonuc); } if (result.RequiresTwoFactor) { KayitSonuc <object> sonuc = KayitSonuc <object> .Basarisiz(new Hata[] { new Hata { Kod = "", Tanim = "Kullanıcı 2 faktörlü giriş için gerekli işlemler yapılmamış!" } }); return Ok(sonuc); } if (result.Succeeded) { var identity = await GetClaimsIdentity(girisBilgileri, kullaniciEntity); if (identity == null) { return Ok(KayitSonuc <object> .Basarisiz(new Hata[] { new Hata { Kod = "", Tanim = "Kullanıcı adı ve/veya şifre yanlış!" } })); } var jwt = Tokens.GenerateJwt(identity, jwtFactory, girisBilgileri.KullaniciAdi, uygulamaAyarlari); var tokenString = jwt.Result; var kullanici = kullaniciEntity.ToKullaniciBilgi(); kullanici.GecerlilikOmruDakika = (int)uygulamaAyarlari.ValidFor.TotalSeconds; var sonuc = KayitSonuc <object> .IslemTamam(new { tokenString, kullanici, returnUrl }); sonuc.Mesajlar[0] = "Giriş başarılı"; sonuc.Mesajlar.Add($"Hoşgeldiniz {kullanici.TamAdi}!"); return Ok(sonuc); } return Ok(KayitSonuc <object> .Basarisiz(new Hata[] { new Hata { Kod = "", Tanim = "Kullanıcı adı ve/veya şifre yanlış!" } })); })); }
private async Task <IActionResult> TeklifiDondur(int teklifEdenNo, int teklifAlanNo, int kullaniciNo) { var teklif = await arkadaslikRepo.TeklifiBulAsync(teklifEdenNo, teklifAlanNo); if (teklif != null) { var teklifDto = teklif.ToDto(); TeklifinArkadasiniBelirle(kullaniciNo, teklifDto); return(Ok(KayitSonuc <ArkadaslarimListeDto> .IslemTamam(teklifDto))); } return(BadRequest("Teklif bulunamadı!")); }
public async Task <IActionResult> GetSoruById(int id) { return(await KullaniciVarsaCalistir <IActionResult>(async() => { var soru = await soruStore.BulAsync(id); if (soru == null) { return NotFound("Soru bulunamadı"); } var sonuc = KayitSonuc <SoruDegistirDto> .IslemTamam(soru.ToSoruDegistirDto()); return Ok(sonuc); })); }
public async Task <IActionResult> SoruKaydet([FromBody] SoruDegistirDto degisecekSoru) { return(await KullaniciVarsaCalistir <IActionResult>(async() => { var kullanici = await kullaniciYonetici.FindByIdAsync("1"); if (kullanici == null || !kullanici.EmailConfirmed || kullanici.Pasif) { throw new BadRequestError("Kullanıcı bilgisi yanlış"); } var veritabanindakiKayit = await soruStore.DegistirAsync(degisecekSoru); var sonuc = await soruStore.KaydetAsync(); if (sonuc) { var kayitSonuc = KayitSonuc <SoruListeDto> .IslemTamam(veritabanindakiKayit.ToSoruListeDto()); return Ok(kayitSonuc); } throw new InternalServerError("Soru yaratılamadı!"); })); }
public async Task <IActionResult> Get(int id, [FromQuery] string neden, [FromQuery] string alanlar) { return(await KullaniciVarsaCalistir <IActionResult>(async() => { Sonuc sonuc = null; if (id <= 0) { sonuc = Sonuc.Basarisiz(new Hata[] { new Hata { Kod = "", Tanim = SonucMesajlari.Liste[MesajAnahtarlari.SifirdanBuyukDegerGerekli] } }); return Ok(sonuc); } if (id != aktifKullaniciNo) { sonuc = Sonuc.Basarisiz(new Hata[] { new Hata { Kod = "", Tanim = "Profil fotoğrafı değiştirilemedi!" } }); return Ok(sonuc); } var kayit = await repo.BulAsync(id); if (kayit == null) { sonuc = Sonuc.Basarisiz(new Hata[] { new Hata { Kod = "", Tanim = "Kullanıcı bulunamadı!" } }); return Ok(sonuc); } if (neden == "yaz") { var yazSonucDto = KayitSonuc <ProfilOku> .IslemTamam(kayit.ToProfilOkuDto()); return Ok(yazSonucDto.ShapeData(alanlar)); } var resource = KayitSonuc <KullaniciDetayDto> .IslemTamam(kayit.ToKullaniciDetayDto()); return Ok(resource.ShapeData(alanlar)); })); }
public async Task <IActionResult> YeniSoru([FromBody] SoruYaratDto yeniSoruDto) { return(await KullaniciVarsaCalistir <IActionResult>(async() => { var soru = await soruStore.YaratAsync(yeniSoruDto); try { var sonuc = await soruStore.KaydetAsync(); if (sonuc) { var dbSoru = await soruStore.BulAsync(soru.SoruId); //return CreatedAtRoute("SoruListeOku", new { id = soru.SoruId }, soru); var kayitSonuc = KayitSonuc <SoruListeDto> .IslemTamam(dbSoru.ToSoruListeDto()); return Ok(kayitSonuc); } } catch (Exception e) { throw new InternalServerError("Soru yaratılamadı!"); } throw new InternalServerError("Soru yaratılamadı!"); })); }
public async Task <IActionResult> Facebook([FromBody] FacebookAuthDto model) { // 1.generate an app access token var appAccessTokenResponse = await Client.GetStringAsync($"https://graph.facebook.com/oauth/access_token?client_id={_fbAuthSettings.AppId}&client_secret={_fbAuthSettings.AppSecret}&grant_type=client_credentials"); var appAccessToken = JsonConvert.DeserializeObject <FacebookAppAccessToken>(appAccessTokenResponse); // 2. validate the user access token var userAccessTokenValidationResponse = await Client.GetStringAsync($"https://graph.facebook.com/debug_token?input_token={model.AccessToken}&access_token={appAccessToken.AccessToken}"); var userAccessTokenValidation = JsonConvert.DeserializeObject <FacebookUserAccessTokenValidation>(userAccessTokenValidationResponse); if (!userAccessTokenValidation.Data.IsValid) { return(BadRequest(Errors.AddErrorToModelState("login_failure", "Invalid facebook token.", ModelState))); } // 3. we've got a valid token so we can request user data from fb var userInfoResponse = await Client.GetStringAsync($"https://graph.facebook.com/v2.8/me?fields=id,email,first_name,last_name,name,gender,locale,birthday,picture&access_token={model.AccessToken}"); var facebookUserInfo = JsonConvert.DeserializeObject <FacebookUserData>(userInfoResponse); // 4. ready to create the local user account (if necessary) and jwt var user = await _userManager.KullaniciyiGetirEpostayaGore(facebookUserInfo.Email); string mesaj = string.Empty; if (user == null) { user = new Kullanici() { UserName = facebookUserInfo.Email, Email = facebookUserInfo.Email, EmailConfirmed = false, YaratilmaTarihi = DateTime.Now, Pasif = true, Yonetici = false, FacebookId = facebookUserInfo.Id, //FaceBookPictureUrl = userInfo.Picture.Data.Url }; user.Kisi = new KullaniciKisi { Unvan = "Doç.Dr.", Ad = facebookUserInfo.FirstName, Soyad = facebookUserInfo.LastName, CinsiyetNo = 1, DogumTarihi = new DateTime(1970, 11, 15) }; KisiyeFacebookFotografiEkle(facebookUserInfo, user); var result = await _userManager.CreateAsync(user, Convert.ToBase64String(Guid.NewGuid().ToByteArray()).Substring(0, 8)); if (!result.Succeeded) { return(Ok(Sonuc.Basarisiz(new Hata[] { new Hata { Kod = "", Tanim = "Facebook bilgileriyle kullanıcı yaratılamadı!" } }))); } else { mesaj = "Facebook kullanıcısı yaratıldı. Hesabınız onay sürecinde. Lütfen Eposta adresinizi kontrol ediniz."; } } else { bool kayitGerekli = false; if (user.FacebookId == null || user.FacebookId != facebookUserInfo.Id) { //user.Pasif = true; //user.EmailConfirmed = false; if (facebookUserInfo.Gender == "male") { user.Kisi.CinsiyetNo = 1; } else if (facebookUserInfo.Gender == "female") { user.Kisi.CinsiyetNo = 2; } kayitGerekli = true; } var facebookFotograflari = user.Kisi.Fotograflari.Where(f => f.DisKaynakId == "facebook").ToList(); var facebookFotografiYok = facebookFotograflari != null && !facebookFotograflari.Any(fb => fb.Url == facebookUserInfo.Picture.Data.Url); var suankiProfilFotografi = user.Kisi.Fotograflari.SingleOrDefault(f => f.ProfilFotografi); if (suankiProfilFotografi != null) { suankiProfilFotografi.ProfilFotografi = false; kayitGerekli = true; } if (facebookFotografiYok) { KisiyeFacebookFotografiEkle(facebookUserInfo, user); kayitGerekli = true; } if (kayitGerekli) { var degistirmeSonuc = await _userManager.UpdateAsync(user); if (!degistirmeSonuc.Succeeded) { return(Ok(Sonuc.Basarisiz(new Hata[] { new Hata { Kod = "", Tanim = "Facebook bilgileriyle kullanıcı kaydedilemedi!" } }))); } else { mesaj = "Facebook bilgileriyle kullanıcı var olan kullanıcı ilişkilendirildi. Hesabınızı onaylanması gerekli. Lütfen eposta adresinizi kontrol ediniz."; } } } // generate the jwt for the local user... var localUser = await _userManager.KullaniciyiGetirEpostayaGore(facebookUserInfo.Email); if (localUser == null) { return(Ok(Sonuc.Basarisiz(new Hata[] { new Hata { Kod = "Giris Başarısız", Tanim = "Facebook bilgileriyle lokal kullanıcı hesabı yaratılamadı!" } }))); } var girisYapabilirSonuc = await signInManager.CanSignInAsync(localUser); if (girisYapabilirSonuc) { if (!localUser.EmailConfirmed) { //Eposta konfirme etme süreci başlasın } } if (!localUser.Pasif) { //Aktifleştirme süreci başlasın } var jwt = await Tokens.GenerateJwt(_jwtFactory.GenerateClaimsIdentity(localUser), _jwtFactory, localUser.UserName, _jwtOptions); var kullaniciDto = user.ToKullaniciBilgi(); var sonuc = KayitSonuc <object> .IslemTamam(new { tokenString = jwt, kullanici = kullaniciDto }); sonuc.Mesajlar[0] = $"Hoşgeldiniz {kullaniciDto.TamAdi}!"; sonuc.Mesajlar.Add(mesaj); return(Ok(sonuc)); }