Esempio n. 1
0
        public ActionResult Soru(SoruViewModel model)
        {
            Yarisma quiz = Session[SessionNames.QUIZ] as Yarisma;

            if (quiz.BaslangicTarihi.AddMinutes(quiz.SureDk.Value) < DateTime.Now)
            {
                return(RedirectToAction("Bitir"));
            }

            using (BilgiYarismasiEntities2 ent = new BilgiYarismasiEntities2())
            {
                var qs = ent.YarismaSoru
                         .Where(p => p.YarismaId == quiz.Id && p.SiraNo == model.SiraNo)
                         .FirstOrDefault();

                qs.CevapId = model.cevapId;

                ent.SaveChanges();
            }

            if (model.SiraNo >= quiz.SoruSayisi)
            {
                return(RedirectToAction("Bitir"));
            }

            return(RedirectToAction("Soru", new { id = model.SiraNo + 1 }));
        }
Esempio n. 2
0
        public ActionResult MultiBitir()
        {
            MultiBitirViewModel model = new MultiBitirViewModel();

            if (Session[SessionNames.MASA] == null)
            {
                return(Content("Bitmis"));
            }


            Guid masaId = Session[SessionNames.MASA].ToString().toGuid();
            Guid userId = User.Identity.GetUserId().toGuid();

            using (BilgiYarismasiEntities2 ent = new BilgiYarismasiEntities2())
            {
                Masa    masa    = ent.Masa.Where(p => p.Id == masaId).FirstOrDefault();
                Yarisma yarisma = masa.MasaKullanici
                                  .Where(p => p.KullaniciId == userId)
                                  .FirstOrDefault()
                                  .Yarisma.FirstOrDefault();

                int?toplamPuan = ent.YarismaSoru
                                 .Where(p => p.Yarisma.MasaKullanici.KullaniciId == userId)
                                 .Where(p => p.Yarisma.BitisTarihi.HasValue)
                                 .Sum(p => p.Puan);

                int?yarismaPuan = ent.YarismaSoru
                                  .Where(p => p.Yarisma.MasaKullanici.KullaniciId == userId)
                                  .Where(p => p.YarismaId == yarisma.Id)
                                  .Sum(p => p.Puan);

                model.toplam                = yarisma.SoruSayisi;
                model.cevaplanan            = yarisma.YarismaSoru.Where(p => p.CevapId.HasValue).Count();
                model.dogruSayisi           = 0;
                model.yanlisSayisi          = 0;
                model.yarismadanKazandiPuan = yarismaPuan.HasValue?yarismaPuan.Value:0;
                model.toplamPuan            = toplamPuan.HasValue ? toplamPuan.Value : 0;

                foreach (var item in yarisma.YarismaSoru)
                {
                    if (item.CevapId.HasValue)
                    {
                        if (item.Cevap.Dogrumu)
                        {
                            model.dogruSayisi++;
                        }
                        else
                        {
                            model.yanlisSayisi++;
                        }
                    }
                }

                masa.BitisTarihi    = DateTime.Now;
                yarisma.BitisTarihi = masa.BitisTarihi;
                ent.SaveChanges();
            }

            return(View(model));
        }
Esempio n. 3
0
        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();
            }
        }
Esempio n. 4
0
        // GET: Yaris
        public ActionResult Index()
        {
            YarisIndexViewModel model = new YarisIndexViewModel();

            using (BilgiYarismasiEntities2 ent = new BilgiYarismasiEntities2())
            {
                Guid userId = User.Identity.GetUserId().toGuid();

                Yarisma sonSingleYarisma = ent.Yarisma
                                           .Where(p => p.MasaKullanici.Masa.Tip == (int)EnmMasaTipi.SinglePlaeyerMasa)
                                           .Where(p => p.MasaKullanici.KullaniciId == userId)
                                           .OrderByDescending(p => p.BaslangicTarihi)
                                           .FirstOrDefault();

                Yarisma sonMultiYarisma = ent.Yarisma
                                          .Where(p => p.MasaKullanici.Masa.Tip == (int)EnmMasaTipi.MultiPlayerMasa)
                                          .Where(p => p.MasaKullanici.KullaniciId == userId)
                                          .OrderByDescending(p => p.BaslangicTarihi)
                                          .FirstOrDefault();

                if (sonSingleYarisma == null)
                {
                    return(View(model));
                }

                List <YarismaSoru> sonSorular = ent.YarismaSoru
                                                .Where(p => p.YarismaId == sonSingleYarisma.Id)
                                                .ToList();

                model.EnSonSinglePuan = sonSorular.Sum(p => p.Puan).HasValue ? sonSorular.Sum(p => p.Puan).Value : 0;

                var enYuksekSingle = ent.VKullaniciPuan
                                     .Where(p => p.KullaniciId == userId)
                                     .OrderByDescending(p => p.PUAN)
                                     .FirstOrDefault();

                model.EnYuksekSinglePuan = enYuksekSingle.PUAN.HasValue ? enYuksekSingle.PUAN.Value : 0;

                if (sonMultiYarisma != null)
                {
                    var multiKisiSayisi = ent.YarismaSoru
                                          .Where(p => p.YarismaId == sonMultiYarisma.Id)
                                          .Sum(p => p.Puan);
                    model.MultiEnsonPuan = multiKisiSayisi.HasValue?multiKisiSayisi.Value:0;
                    var enYuksekMulti = ent.VKullaniciPuanTipli
                                        .Where(p => p.KullaniciId == userId && p.Tip == (int)EnmMasaTipi.MultiPlayerMasa)
                                        .OrderByDescending(p => p.PUAN)
                                        .FirstOrDefault();
                    model.MultiEnYuksekPuan = enYuksekMulti == null ? 0 : enYuksekMulti.PUAN.HasValue ? enYuksekMulti.PUAN.Value : 0;
                }
            }

            return(View(model));
        }
Esempio n. 5
0
        public ActionResult SingleBasla(Guid id)
        {
            Session[SessionNames.KONU] = id;

            using (BilgiYarismasiEntities2 ent = new BilgiYarismasiEntities2())
            {
                Konu konu = ent.Konu.Where(p => p.Id == id).FirstOrDefault();

                Masa masa = new Masa();
                masa.Id              = Guid.NewGuid();
                masa.KisiSayisi      = 1;
                masa.KonuId          = id;
                masa.SoruSayisi      = 0;
                masa.SureDk          = konu.SureDk;
                masa.Tip             = (int)EnmMasaTipi.SinglePlaeyerMasa;
                masa.KayitTarihi     = DateTime.Now;
                masa.BaslangicTarihi = masa.KayitTarihi;

                ent.Masa.Add(masa);

                MasaKullanici masaKullanici = new MasaKullanici();
                masaKullanici.Id          = Guid.NewGuid();
                masaKullanici.KullaniciId = User.Identity.GetUserId().toGuid();
                masaKullanici.MasaId      = masa.Id;
                masaKullanici.SiraNo      = 1;
                masaKullanici.Tip         = (int)enmMasaKullaniciTipi.Yonetici;
                masaKullanici.KayitTarihi = DateTime.Now;

                ent.MasaKullanici.Add(masaKullanici);

                Yarisma yarisma = new Yarisma();
                yarisma.BaslangicTarihi = DateTime.Now;
                yarisma.Id = Guid.NewGuid();
                yarisma.MasaKullaniciId = masaKullanici.Id;
                yarisma.SoruSayisi      = 0;
                yarisma.SureDk          = masa.SureDk;

                ent.Yarisma.Add(yarisma);
                ent.SaveChanges();

                yarismayaSoruEkle(ent, yarisma);

                ent.SaveChanges();

                Session[SessionNames.MASA] = masa.Id;
            }

            return(RedirectToAction("SingleYaris"));
        }
Esempio n. 6
0
        public ActionResult SingleYaris(SingleYarisViewModel model)
        {
            if (model.cevapId == null || model.cevapId == Guid.Empty)
            {
                return(RedirectToAction("SingleYaris"));
            }

            var aktifMasa = Utils.AktifMasa;

            if (aktifMasa == null)
            {
                return(RedirectToAction("index"));
            }

            using (BilgiYarismasiEntities2 ent = new BilgiYarismasiEntities2())
            {
                Masa    masa    = ent.Masa.Where(p => p.Id == aktifMasa.Id).FirstOrDefault();
                Yarisma yarisma = masa.MasaKullanici.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("SingleYaris"));
                }

                yarismaSoru.CevapId = model.cevapId;

                if (cevap.Dogrumu)
                {
                    yarismaSoru.Puan = YarismaDegerler.BaslangicPuani;
                }

                ent.SaveChanges();


                if (yarisma.YarismaSoru.Count() >= masa.Konu.Soru.Count())
                {
                    return(RedirectToAction("SingleBitir"));
                }

                yarismayaSoruEkle(ent, yarisma);

                ent.SaveChanges();
            }

            return(RedirectToAction("SingleYaris"));
        }
Esempio n. 7
0
        public ActionResult Bitir()
        {
            IBitis bvm = new BitirViewModel();

            Yarisma quiz = Session[SessionNames.QUIZ] as Yarisma;

            bvm.toplam = quiz.SoruSayisi;

            using (BilgiYarismasiEntities2 ent = new BilgiYarismasiEntities2())
            {
                var q1 = ent.Yarisma.Where(p => p.Id == quiz.Id).FirstOrDefault();
                q1.BitisTarihi = DateTime.Now;

                ent.SaveChanges();

                Session[SessionNames.QUIZ] = null;

                var quizSorulari = ent.YarismaSoru
                                   .Where(p => p.YarismaId == quiz.Id)
                                   .ToList();

                bvm.cevaplanan   = 0;
                bvm.dogruSayisi  = 0;
                bvm.yanlisSayisi = 0;

                foreach (var quizSorusu in quizSorulari)
                {
                    if (quizSorusu.CevapId != null)
                    {
                        bvm.cevaplanan++;

                        var cevap = ent.Cevap.Where(p => p.Id == quizSorusu.CevapId).FirstOrDefault();

                        if (cevap.Dogrumu)
                        {
                            bvm.dogruSayisi++;
                        }
                        else
                        {
                            bvm.yanlisSayisi++;
                        }
                    }
                }
            }

            return(View(bvm));
        }
Esempio n. 8
0
        public ActionResult Soru(int?id)
        {
            SoruViewModel svm = new SoruViewModel();

            svm.SiraNo = id.HasValue ? id.Value : 1;

            Yarisma quiz = Session[SessionNames.QUIZ] as Yarisma;
            Konu    konu = new Konu();

            if (quiz.BaslangicTarihi.AddMinutes(quiz.SureDk.Value) < DateTime.Now)
            {
                return(RedirectToAction("Bitir"));
            }

            using (BilgiYarismasiEntities2 ent = new BilgiYarismasiEntities2())
            {
                var qs = ent.YarismaSoru
                         .Where(p => p.YarismaId == quiz.Id && p.SiraNo == svm.SiraNo)
                         .FirstOrDefault();
                var soru = ent.Soru
                           .Where(p => p.Id == qs.SoruId)
                           .FirstOrDefault();

                svm.Sorusu = soru.Sorusu;

                var cevaplar = ent.YarismaSoruCevap
                               .Where(p => p.YarismaSoruId == qs.Id)
                               .ToList();

                foreach (var cevap in cevaplar)
                {
                    var            cvp = ent.Cevap.Where(p => p.Id == cevap.CevapId).FirstOrDefault();
                    CevapKisaModel c1  = new CevapKisaModel();
                    c1.Id     = cvp.Id;
                    c1.Cevabi = cvp.Cevabi;
                    svm.cevaplar.Add(c1);
                }

                konu = ent.Konu
                       .Where(p => p.Id == quiz.MasaKullaniciId)
                       .FirstOrDefault();
            }

            ViewBag.seconds = (int)((quiz.BaslangicTarihi.AddMinutes(konu.SureDk) - DateTime.Now).TotalSeconds);

            return(View(svm));
        }
Esempio n. 9
0
        public ActionResult SingleBitir()
        {
            SingleBitirViewModel model = new SingleBitirViewModel();

            var aktifMasa = Utils.AktifMasa;

            if (aktifMasa == null)
            {
                return(RedirectToAction("index"));
            }

            using (BilgiYarismasiEntities2 ent = new BilgiYarismasiEntities2())
            {
                Masa    masa    = ent.Masa.Where(p => p.Id == aktifMasa.Id).FirstOrDefault();
                Yarisma yarisma = masa.MasaKullanici.FirstOrDefault()
                                  .Yarisma.FirstOrDefault();

                model.cevaplanan   = yarisma.SoruSayisi;
                model.dogruSayisi  = 0;
                model.yanlisSayisi = 0;

                foreach (var item in yarisma.YarismaSoru)
                {
                    if (item.CevapId.HasValue)
                    {
                        if (item.Cevap.Dogrumu)
                        {
                            model.dogruSayisi++;
                        }
                        else
                        {
                            model.yanlisSayisi++;
                        }
                    }
                }

                masa.BitisTarihi    = DateTime.Now;
                yarisma.BitisTarihi = masa.BitisTarihi;
                ent.SaveChanges();
            }

            return(View(model));
        }
Esempio n. 10
0
        public ActionResult MultiBasla()
        {
            Guid masaId = Session[SessionNames.MASA].ToString().toGuid();
            Guid userId = User.Identity.GetUserId().toGuid();

            using (BilgiYarismasiEntities2 ent = new BilgiYarismasiEntities2())
            {
                var masa           = ent.Masa.FirstOrDefault(p => p.Id == masaId);
                var adminKullanici = masa.MasaKullanici.Where(p => p.Tip == (int)enmMasaKullaniciTipi.Yonetici).FirstOrDefault();

                if (adminKullanici.KullaniciId != userId)
                {
                    // yarisma baslamismi kontrol edecekler
                    return(RedirectToAction("MultiDevam"));
                }

                var masaKullanicilar = masa.MasaKullanici.Where(p => p.Tip != (int)enmMasaKullaniciTipi.Izleyici).ToList();

                foreach (var masaKullanici in masaKullanicilar)
                {
                    Yarisma yarisma = new Yarisma();
                    yarisma.BaslangicTarihi = DateTime.Now;
                    yarisma.Id = Guid.NewGuid();
                    yarisma.MasaKullaniciId = masaKullanici.Id;
                    yarisma.SoruSayisi      = 0;
                    yarisma.SureDk          = masa.SureDk;

                    ent.Yarisma.Add(yarisma);
                    ent.SaveChanges();
                }

                masayaSoruEkle(ent, masa);

                masa.BaslangicTarihi = DateTime.Now;

                ent.SaveChanges();
            }

            return(RedirectToAction("MultiDevam"));
        }
Esempio n. 11
0
        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"));
        }
Esempio n. 12
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"));
        }