Ejemplo n.º 1
0
        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"));
        }
Ejemplo n.º 2
0
        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));
        }