public ActionResult MultiYaris(MultiYarisViewModel model) { if (model.cevapId == null || model.cevapId == Guid.Empty) { return(RedirectToAction("MultiDevam")); } var aktifMasa = Utils.AktifMasa; if (aktifMasa == null) { return(RedirectToAction("index")); } using (BilgiYarismasiEntities2 ent = new BilgiYarismasiEntities2()) { Guid userId = User.Identity.GetUserId().toGuid(); Masa masa = ent.Masa.Where(p => p.Id == aktifMasa.Id).FirstOrDefault(); Yarisma yarisma = masa.MasaKullanici .Where(p => p.KullaniciId == userId) .FirstOrDefault() .Yarisma.OrderBy(p => p.BaslangicTarihi).FirstOrDefault(); YarismaSoru yarismaSoru = yarisma.YarismaSoru.OrderBy(p => p.SiraNo).LastOrDefault(); Cevap cevap = ent.Cevap.Where(p => p.Id == model.cevapId).FirstOrDefault(); if (yarismaSoru.SiraNo != model.SiraNo) { return(RedirectToAction("MultiDevam")); } yarismaSoru.CevapId = model.cevapId; if (cevap.Dogrumu) { // onceki dogru cevaplar kontrol edilir var digerDogrular = ent.YarismaSoru .Where(p => p.Yarisma.MasaKullanici.MasaId == masa.Id && p.SoruId == yarismaSoru.SoruId && p.Cevap.Dogrumu ).Count(); yarismaSoru.Puan = Convert.ToInt32(YarismaDegerler.BaslangicPuani * Math.Pow(2, masa.KisiSayisi - digerDogrular - 1)); } else { yarismaSoru.Puan = YarismaDegerler.BaslangicPuani * (-1); } ent.SaveChanges(); if (yarisma.YarismaSoru.Count() >= masa.Konu.Soru.Count()) { return(RedirectToAction("MultiBitir")); } //yarismayaSoruEkle(ent, yarisma); //ent.SaveChanges(); } return(RedirectToAction("MultiDevam")); }
public ActionResult MultiYaris() { MultiYarisViewModel model = new MultiYarisViewModel(); if (Utils.AktifMasa == null) { return(RedirectToAction("index")); } Masa aktifMasa = Utils.AktifMasa; using (BilgiYarismasiEntities2 ent = new BilgiYarismasiEntities2()) { Masa masa = ent.Masa.Where(p => p.Id == aktifMasa.Id).FirstOrDefault(); Guid userId = User.Identity.GetUserId().toGuid(); model.SiraNo = masa.MasaKullanici.FirstOrDefault() .Yarisma.OrderBy(p => p.BaslangicTarihi).FirstOrDefault() .YarismaSoru.OrderBy(p => p.SiraNo).LastOrDefault() .SiraNo.Value; if (masa.BaslangicTarihi.Value.AddMinutes(masa.SureDk) < DateTime.Now) { return(RedirectToAction("MultiBitir")); } model.Sorusu = masa.MasaKullanici.FirstOrDefault() .Yarisma.OrderBy(p => p.BaslangicTarihi).FirstOrDefault() .YarismaSoru.OrderBy(p => p.SiraNo).LastOrDefault() .Soru.Sorusu; model.cevaplar = masa.MasaKullanici.FirstOrDefault() .Yarisma.OrderBy(p => p.BaslangicTarihi).FirstOrDefault() .YarismaSoru.OrderBy(p => p.SiraNo).LastOrDefault() .YarismaSoruCevap .Select(p => new CevapKisaModel { Cevabi = p.Cevap.Cevabi, Id = p.Cevap.Id }) .ToList(); var oncekiSoru = ent.YarismaSoru .Where(p => p.Yarisma.MasaKullanici.MasaId == masa.Id && p.Yarisma.MasaKullanici.KullaniciId == userId && p.SiraNo == model.SiraNo - 1) .FirstOrDefault(); if (oncekiSoru == null) { model.OncekiDogrumu = 0; } else { model.OncekiDogrumu = oncekiSoru.Cevap.Dogrumu ? 1 : 2; } } ViewBag.seconds = (int)((aktifMasa.BaslangicTarihi.Value.AddMinutes(aktifMasa.SureDk) - DateTime.Now).TotalSeconds); return(View(model)); }