private void masayaSoruEkle(BilgiYarismasiEntities2 ent, Masa masa) { var masaKullanicilar = masa.MasaKullanici.Where(p => p.Tip != (int)enmMasaKullaniciTipi.Izleyici).ToList(); var eskiSorular = masa.MasaKullanici.FirstOrDefault().Yarisma.FirstOrDefault().YarismaSoru .Select(p => p.SoruId) .ToList(); var yeniSoruId = masa.Konu.Soru .Where(p => !eskiSorular.Any(t => t == p.Id)) .OrderBy(p => Guid.NewGuid()).FirstOrDefault().Id; foreach (var mitem in masaKullanicilar) { Yarisma yarisma = mitem.Yarisma.FirstOrDefault(); YarismaSoru yarismaSoru = new YarismaSoru(); yarismaSoru.Id = Guid.NewGuid(); yarismaSoru.SiraNo = yarisma.YarismaSoru.Count() + 1; yarismaSoru.SoruId = yeniSoruId; yarismaSoru.YarismaId = yarisma.Id; if (yarisma.MasaKullanici.Masa.Tip == (int)EnmMasaTipi.MultiPlayerMasa) { yarismaSoru.GosterimTarihi = DateTime.Now.AddSeconds(2); } ent.YarismaSoru.Add(yarismaSoru); var mDogruCevap = yarismaSoru.Soru.Cevap.Where(p => p.Dogrumu).FirstOrDefault(); //yarismaSoru.CevapId = mDogruCevap.Id; var cevaplar = yarismaSoru.Soru.Cevap .Where(p => !p.Dogrumu) .OrderBy(p => Guid.NewGuid()) .Take(yarismaSoru.Soru.SecenekSayisi.HasValue ? yarismaSoru.Soru.SecenekSayisi.Value - 1 : 3) .ToList(); cevaplar.Add(mDogruCevap); cevaplar = cevaplar.OrderBy(p => Guid.NewGuid()).ToList(); foreach (var cevap in cevaplar) { YarismaSoruCevap yarismaSoruCevap = new YarismaSoruCevap(); yarismaSoruCevap.CevapId = cevap.Id; yarismaSoruCevap.Id = Guid.NewGuid(); yarismaSoruCevap.YarismaSoruId = yarismaSoru.Id; ent.YarismaSoruCevap.Add(yarismaSoruCevap); } yarisma.SoruSayisi++; ent.SaveChanges(); } }
public RedirectToRouteResult Basla(Guid id) { Yarisma yarisma = new Yarisma(); using (BilgiYarismasiEntities2 ent = new BilgiYarismasiEntities2()) { var user = ent.AspNetUsers .Where(p => p.UserName == User.Identity.Name) .FirstOrDefault(); var konu = ent.Konu.Where(p => p.Id == id).FirstOrDefault(); yarisma = new Yarisma(); yarisma.BaslangicTarihi = DateTime.Now; yarisma.Id = Guid.NewGuid(); //yarisma.KonuId = id; //yarisma.KullaniciId = new Guid(user.Id); yarisma.SoruSayisi = konu.SoruSayisi; yarisma.SureDk = konu.SureDk; ent.Yarisma.Add(yarisma); var sorular = ent.Soru .Where(p => p.KonuId == konu.Id) .OrderBy(p => Guid.NewGuid()) .Take(yarisma.SoruSayisi) .ToList(); YarismaS qzs = YarismaS.Instance; int soruSiraNo = 0; foreach (var soru in sorular) { soruSiraNo++; var mDogruCevap = ent.Cevap .Where(p => p.SoruId == soru.Id && p.Dogrumu) .FirstOrDefault(); var cevaplar = ent.Cevap .Where(p => p.SoruId == soru.Id && !p.Dogrumu) .OrderBy(p => Guid.NewGuid()) .Take(soru.SecenekSayisi.HasValue ? soru.SecenekSayisi.Value - 1 : 3) .ToList(); cevaplar.Add(mDogruCevap); cevaplar = cevaplar.OrderBy(p => Guid.NewGuid()).ToList(); YarismaSoru qs = new YarismaSoru(); qs.Id = Guid.NewGuid(); qs.YarismaId = yarisma.Id; qs.SoruId = soru.Id; qs.SiraNo = soruSiraNo; ent.YarismaSoru.Add(qs); foreach (var cevap in cevaplar) { YarismaSoruCevap qsc = new YarismaSoruCevap(); qsc.CevapId = cevap.Id; qsc.Id = Guid.NewGuid(); qsc.YarismaSoruId = qs.Id; ent.YarismaSoruCevap.Add(qsc); } } ent.SaveChanges(); Session[SessionNames.QUIZ] = yarisma; } return(RedirectToAction("Soru")); }