public async Task <JsonResult> TestSinavOlustur(TestSinavSorulari testSinavSorulari) { var result = await Task.FromResult(_sinavOlustur.TestSinavOlustur(testSinavSorulari, Guid.Parse(User.Identity.GetUserId()))); return(new JsonResult(new Result { isSuccess = result.isSuccess, Message = result.Message })); }
public Result TestSinavOlustur(TestSinavSorulari testSinavSorulari, Guid sinavSahibiIdBilgisi) { try { if (testSinavSorulari == null || sinavSahibiIdBilgisi.ToString() == null) { throw new ArgumentNullException("Gelen değerlerden bir tanesi null"); } var sinavSorularTablosuTumSorularList = new List <TestSinavSorular>(); // Kaç soru olduğu testSinavSorulari.SoruTemplate içerisinde. // Buradaki sorular kadar dönüp db kayıt edeceğiz. for (int m = 0; m < testSinavSorulari.SoruTemplate.Count; m++) { // . soru için şıklar // Tüm soru şıklarını soruşıkları tablosuna eklemek için list haline getiriyoruz var testSinavSorulariSiklariList = new List <TestSinavSoruSiklari>(); for (int i = 0; i < testSinavSorulari.SoruTemplate[m].SoruSiklari.Count; i++) { testSinavSorulariSiklariList.Add(new TestSinavSoruSiklari { SoruSikki = (i + 1), SoruSikMetni = testSinavSorulari.SoruTemplate[m].SoruSiklari[i], TestSinavSoruSiklariId = Guid.NewGuid() }); } var testSinavSorularTablosu = new TestSinavSorular { TestSinavSoruSiklari = testSinavSorulariSiklariList, SoruCevabi = Convert.ToInt32(testSinavSorulari.SoruTemplate[m].SoruDogruSik), TestSinavSorusuMetni = testSinavSorulari.SoruTemplate[m].SoruText, TestSinavSorularId = Guid.NewGuid() }; sinavSorularTablosuTumSorularList.Add(testSinavSorularTablosu); } // Test sınav tablosu verileri var testSinavTestSinavTablosu = new TestSinav { TestSinavId = Guid.NewGuid(), TestSinavSorulars = sinavSorularTablosuTumSorularList }; // Sinav tablosu verileri var sinavTablosu = new EntityLayer.Sinav.Sinav { DerslerId = Guid.Parse(testSinavSorulari.DersGuidId), SinavId = Guid.NewGuid(), SinavSahibi = sinavSahibiIdBilgisi, SinavTuru = SinavTuru.Test, SinavEklenmeTarihi = DateTime.Now, TestSinav = testSinavTestSinavTablosu, SinavAktiflikDurumu = false, SinavSuresiDakika = 0 }; _unitOfWork.SinavRepository.Add(sinavTablosu); _unitOfWork.SaveChanges(); return(new Result { isSuccess = true, Message = "Test sınavı başarılı bir şekilde kayıt edildi." }); } catch (Exception e) { _logger.LogError("Test sınavı kayıt işlemi başarısız. Detaylar -> " + e + " | İşlem sahibi -> " + sinavSahibiIdBilgisi); return(new Result { isSuccess = false, Message = "Sınav kayıt işlemi başarısız." }); } }