public async Task <JsonResult> GirilenTestSinaviniKayitEt(TestSinavSinaviKayitEtViewModel testSinavSinaviKayitEtViewModel) { testSinavSinaviKayitEtViewModel.OgrenciId = Guid.Parse(User.Identity.GetUserId()); var result = await Task.FromResult(_sinavKayit.TestSinavOgrenciSinaviKayit(testSinavSinaviKayitEtViewModel)); return(new JsonResult(new Result { isSuccess = result.isSuccess, Message = result.Message })); }
public Result TestSinavOgrenciSinaviKayit(TestSinavSinaviKayitEtViewModel testSinavSinaviKayitEtViewModel) { try { double ogrenciSinavPuani = 0; // sınav sonucunu kayıt edebilmek için tabloları birleştirdik var suresiBaslamisSinavlars = _unitOfWork.SuresiBaslamisSinavlarRepository.IncludeMany(x => x.GirilenTestSinavSonuclaris).SingleOrDefault(x => x.OgrenciId == testSinavSinaviKayitEtViewModel.OgrenciId && x.SinavId == Guid.Parse(testSinavSinaviKayitEtViewModel.SinavId)); if (suresiBaslamisSinavlars == null) { throw new NullReferenceException("İlgili sinav bulunamadı."); } var ilgiliTestSinav = _unitOfWork.TestSinavSorularRepository.IncludeMany(x => x.TestSinav, x => x.TestSinavSoruSiklari).Where(x => x.TestSinav.SinavId == Guid.Parse(testSinavSinaviKayitEtViewModel.SinavId)).ToList(); double ogrenciSoruBasinaAlacagiPuan = 100 / ilgiliTestSinav.Count(); foreach (var item in testSinavSinaviKayitEtViewModel.TestSinavCevaplariList) { int dogruSoruCevabi = ilgiliTestSinav.FirstOrDefault(x => x.TestSinavSorularId == item.TestSinavSorularId).SoruCevabi; // soru doğru cevaplanmıştır puan ver if (dogruSoruCevabi == item.SoruCevapSikki) { ogrenciSinavPuani += ogrenciSoruBasinaAlacagiPuan; } } // puanı bulunan öğrenci puanını kayıt et suresiBaslamisSinavlars.OgrenciSinaviBitirmeZamani = DateTime.Now; suresiBaslamisSinavlars.GirilenTestSinavSonuclaris = new GirilenTestSinavSonuclari { SinavPuani = ogrenciSinavPuani, GirilenTestSinavSonuclariId = Guid.NewGuid() }; _unitOfWork.SaveChanges(); return(new Result { isSuccess = true, Message = "Sınav başarılı bir şekilde kayıt edildi." }); } catch (Exception e) { _logger.LogError("Klasik sinav kaydı başarısız. İstek sahibi -> " + testSinavSinaviKayitEtViewModel.OgrenciId + " | Sinav -> " + testSinavSinaviKayitEtViewModel.SinavId + " | Detay -> " + e); return(new Result { isSuccess = false, Message = "Sınav kaydı başarısız!" }); } }