예제 #1
0
        public Exception RemoveQuestion(string NameQuestion)
        {
            Exception ex = null;

            try
            {
                using (MyModelContext _context = new MyModelContext())
                {
                    var listRemoveQuest = from qe in _context.qestions
                                          where qe.NameQestion == NameQuestion
                                          select qe;
                    if (listRemoveQuest != null)
                    {
                        _context.qestions.RemoveRange(listRemoveQuest);
                    }

                    _context.SaveChanges();
                }
            }
            catch (Exception ERROR)
            {
                ex = ERROR;
            }
            return(ex);
        }
예제 #2
0
        public Exception RemoveHeroes(string NameHeroes)
        {
            Exception ex = null;

            try
            {
                using (MyModelContext _context = new MyModelContext())
                {
                    var listRemoveQuest = from qe in _context.qestions
                                          where qe.NameHeroes == NameHeroes
                                          select qe;
                    if (listRemoveQuest != null)
                    {
                        _context.qestions.RemoveRange(listRemoveQuest);
                    }

                    var hero = _context.heroes.SingleOrDefault(item => item.NameHeroes == NameHeroes);
                    if (hero != null)
                    {
                        _context.heroes.Remove(hero);
                    }
                    _context.SaveChanges();
                }
            }
            catch (Exception ERROR)
            {
                ex = ERROR;
            }
            return(ex);
        }
예제 #3
0
        public Exception ClearBdData()
        {
            Exception ex = null;

            try
            {
                using (var ctx = new MyModelContext())
                {
                    foreach (var u in ctx.qestions)
                    {
                        ctx.qestions.Remove(u);
                    }
                    foreach (var u in ctx.heroes)
                    {
                        ctx.heroes.Remove(u);
                    }
                    ctx.SaveChanges();
                }
            }
            catch (Exception ERROR)
            {
                ex = ERROR;
            }
            return(ex);
        }
예제 #4
0
 //Добавление нового вопроса
 public void AddQuestion(string que)
 {
     using (var dbContext = new MyModelContext())
     {
         foreach (var hero in dbContext.heroes)
         {
             dbContext.qestions.Add(new Questions
             {
                 NameQestion   = que,
                 NameHeroes    = hero.NameHeroes,
                 OtvetSelected = 1,
                 OtvetQuest1   = 0.2,
                 OtvetQuest2   = 0.2,
                 OtvetQuest3   = 0.2,
                 OtvetQuest4   = 0.2,
                 OtvetQuest5   = 0.2
             });
         }
         dbContext.SaveChanges();
     }
 }
예제 #5
0
        //Заполнение бд целиком
        public void FillBdData()
        {
            //      bdTestsClass bdSingleton = bdTestsClass.GetInstance();
            EntityStorage MyDataBase = bdTestsClass.GetInstance().GetListsBDHeroesAndQuestions(); //использован в синглтуне

            //      List<Heroes> heL = new List<Heroes>();
            //      List<Questions> qeL = new List<Questions>();
            //      heL = MyDataBase.Heroes;
            //      qeL = MyDataBase.Qestion;

            using (var dbContext = new MyModelContext())
            {
                foreach (var h in MyDataBase.Heroes)
                {
                    dbContext.heroes.Add(h);
                }

                foreach (var q in MyDataBase.Qestion)
                {
                    dbContext.qestions.Add(q);
                }
                dbContext.SaveChanges();
            }
        }
예제 #6
0
        public Exception UpdateEndGamePobability(IEnumerable<Questions> ListQuestToHero, string HeroName)
        {
            try
            {
                using (MyModelContext _context = new MyModelContext())
                {

                    var listQuest = (from que in _context.qestions.ToList()
                                    where (que.NameHeroes == HeroName && ListQuestToHero.ToList().Find((items) => items.NameQestion == que.NameQestion) != null)
                                    select que).ToList();

                    var ListQuest = ListQuestToHero.ToList();
                    foreach(var lstq in listQuest)
                    {
                        // находим условное количество по ответов по каждому варианту
                        double? l1 = lstq.OtvetSelected * lstq.OtvetQuest1;
                        double? l2 = lstq.OtvetSelected * lstq.OtvetQuest2;
                        double? l3 = lstq.OtvetSelected * lstq.OtvetQuest3;
                        double? l4 = lstq.OtvetSelected * lstq.OtvetQuest4;
                        double? l5 = lstq.OtvetSelected * lstq.OtvetQuest5;
                        //

                        switch(ListQuestToHero.ToList().Find((item)=>item.NameQestion==lstq.NameQestion).OtvetSelected)
                        {
                            case 1:
                                l1++;
                                break;
                            case 2:
                                l2++;
                                break;
                            case 3:
                                l3++;
                                break;
                            case 4:
                                l4++;
                                break;
                            case 5:
                                l5++;
                                break;
                        }
                        lstq.OtvetSelected++;

                        lstq.OtvetQuest1 = l1 / lstq.OtvetSelected;
                        lstq.OtvetQuest2 = l2 / lstq.OtvetSelected;
                        lstq.OtvetQuest3 = l3 / lstq.OtvetSelected;
                        lstq.OtvetQuest4 = l4 / lstq.OtvetSelected;
                        lstq.OtvetQuest5 = l5 / lstq.OtvetSelected;

                        var result = _context.qestions.SingleOrDefault((item) => item.NameHeroes == HeroName && item.NameQestion == lstq.NameQestion);
                        if(result!=null)
                        {
                            result.OtvetSelected = lstq.OtvetSelected;
                            result.OtvetQuest1 = lstq.OtvetQuest1;
                            result.OtvetQuest2 = lstq.OtvetQuest2;
                            result.OtvetQuest3 = lstq.OtvetQuest3;
                            result.OtvetQuest4 = lstq.OtvetQuest4;
                            result.OtvetQuest5 = lstq.OtvetQuest5;
                        }
                    }
                    _context.heroes.SingleOrDefault((item) => item.NameHeroes == HeroName).WeigthHero++;

                    _context.SaveChanges();
                }
            }
            catch(Exception ex)
            {
                return ex;
            }
            return null;
        }
예제 #7
0
        public Exception RemoveQuestion(string NameQuestion)
        {
            Exception ex = null;

            try
            {
                using (MyModelContext _context = new MyModelContext())
                {
                    var listRemoveQuest = from qe in _context.qestions
                                          where qe.NameQestion == NameQuestion
                                          select qe;
                    if (listRemoveQuest != null)
                        _context.qestions.RemoveRange(listRemoveQuest);

                    _context.SaveChanges();
                }
            }
            catch (Exception ERROR)
            {
                ex = ERROR;
            }
            return ex;
        }
예제 #8
0
        public Exception RemoveHeroes(string NameHeroes)
        {
            Exception ex=null;

            try
            {
                using (MyModelContext _context = new MyModelContext())
                {
                    var listRemoveQuest = from qe in _context.qestions
                                          where qe.NameHeroes == NameHeroes
                                          select qe;
                    if(listRemoveQuest!=null)
                        _context.qestions.RemoveRange(listRemoveQuest);

                    var hero = _context.heroes.SingleOrDefault(item => item.NameHeroes == NameHeroes);
                    if(hero!=null)
                        _context.heroes.Remove(hero);
                    _context.SaveChanges();
                }
            }
            catch(Exception ERROR)
            {
                ex = ERROR;
            }
            return ex;
        }
예제 #9
0
        //QustSelected c передачей параметра выбранного вопроса
        //Добавление нового героя со своим вопросом // происходит, если мы не можем угадать героя
        public Exception AddHeroesAndQuestion(string nameHero,string nameQuestion,List<Questions> QustSelected)
        {
            Exception ex=null;
            try
            {
                using (var dbContext = new MyModelContext())
                {
                    List<Questions> QuestSELECTED = new List<Questions>();

                    foreach (var Q in QustSelected)  //иницилизируем список выбранных вопросов
                    {
                        QuestSELECTED.Add(Q);
                    }

                    dbContext.heroes.Add(new Heroes { NameHeroes = nameHero, WeigthHero = 1 }); //добавляем героя
                //    dbContext.SaveChanges();

                    List<Questions> QuestionDistinct = new List<Questions>();  //получаем список неповторяющихся вопросов
                    foreach (var lq in dbContext.qestions.ToList())
                    {
                        if (QuestionDistinct.Find(item => item.NameQestion == lq.NameQestion) == null)
                            QuestionDistinct.Add(lq);
                    }

                    foreach (var Qdistinct in QuestionDistinct)     //проходим по всем вопросам добавляя вероятность по умолчанию и добавляя выбранным вопросам максимальную вероятность ответов
                    {

                        double otv1 = 0.1, otv2 = 0.1, otv3 = 0.1, otv4 = 0.1, otv5 = 0.1;

                        var result = QuestSELECTED.SingleOrDefault(item=>item.NameQestion==Qdistinct.NameQestion);   //TODO: ТУТУ ЧТО-ТО ЕСТЬ
                        if (result != null)
                        {
                            switch (result.OtvetSelected)
                            {
                                case 1:
                                    otv1 = 0.6;
                                    break;
                                case 2:
                                    otv2 = 0.6;
                                    break;
                                case 3:
                                    otv3 = 0.6;
                                    break;
                                case 4:
                                    otv4 = 0.6;
                                    break;
                                case 5:
                                    otv5 = 0.6;
                                    break;
                            }
                            dbContext.qestions.Add(new Questions
                            {
                                OtvetSelected = 1,
                                NameQestion = Qdistinct.NameQestion,
                                NameHeroes=nameHero,
                                OtvetQuest1 = otv1,
                                OtvetQuest2 = otv2,
                                OtvetQuest3 = otv3,
                                OtvetQuest4 = otv4,
                                OtvetQuest5 = otv5
                            });

                        }
                        else
                        {
                            dbContext.qestions.Add(new Questions
                            {
                                OtvetSelected = 1,
                                NameQestion = Qdistinct.NameQestion,
                                NameHeroes = nameHero,
                                OtvetQuest1 = 0.2,
                                OtvetQuest2 = 0.2,
                                OtvetQuest3 = 0.2,
                                OtvetQuest4 = 0.2,
                                OtvetQuest5 = 0.2
                            });
                        }
                    }

                    //            dbContext.SaveChanges();
                    //          dbContext.Dispose();dbContext.SaveChanges();

                    foreach (var HERO in dbContext.heroes.ToList())     //добавляем и иницилизируем вопрос для всех героев
                    {
                        dbContext.qestions.Add(new Questions
                        {
                            OtvetSelected = 1,
                            NameQestion = nameQuestion,
                            NameHeroes = HERO.NameHeroes,
                            OtvetQuest1 = 0.01,
                            OtvetQuest2 = 0.8,
                            OtvetQuest3 = 0.01,
                            OtvetQuest4 = 0.15,
                            OtvetQuest5 = 0.03,
                        });
                    }
                    dbContext.qestions.Add(new Questions        //добавляем вопрос для нашего героя
                    {
                        OtvetSelected = 1,
                        NameQestion = nameQuestion,
                        NameHeroes = nameHero,
                        OtvetQuest1 = 0.8,
                        OtvetQuest2 = 0.01,
                        OtvetQuest3 = 0.15,
                        OtvetQuest4 = 0.01,
                        OtvetQuest5 = 0.03,
                    });

                    dbContext.SaveChanges();
                }
            }
            catch(Exception EX)
            {
                ex = EX;
            }
            return ex;
        }
예제 #10
0
        //Заполнение бд целиком
        public void FillBdData()
        {
            //      bdTestsClass bdSingleton = bdTestsClass.GetInstance();
            EntityStorage MyDataBase = bdTestsClass.GetInstance().GetListsBDHeroesAndQuestions(); //использован в синглтуне
            //      List<Heroes> heL = new List<Heroes>();
            //      List<Questions> qeL = new List<Questions>();
            //      heL = MyDataBase.Heroes;
            //      qeL = MyDataBase.Qestion;

            using (var dbContext = new MyModelContext())
            {
                foreach (var h in MyDataBase.Heroes)
                {
                    dbContext.heroes.Add(h);
                }

                foreach (var q in MyDataBase.Qestion)
                {
                    dbContext.qestions.Add(q);
                }
                dbContext.SaveChanges();
            }
        }
예제 #11
0
        public Exception ClearBdData()
        {
            Exception ex = null;
            try
            {
                using (var ctx = new MyModelContext())
                {

                    foreach (var u in ctx.qestions)
                    {
                        ctx.qestions.Remove(u);
                    }
                    foreach (var u in ctx.heroes)
                    {
                        ctx.heroes.Remove(u);
                    }
                    ctx.SaveChanges();
                }
            }
            catch (Exception ERROR)
            {
                ex = ERROR;
            }
            return ex;
        }
예제 #12
0
 //Добавление нового вопроса
 public void AddQuestion(string que)
 {
     using (var dbContext = new MyModelContext())
     {
         foreach(var hero in dbContext.heroes)
         {
             dbContext.qestions.Add(new Questions
             {
                 NameQestion = que,
                 NameHeroes = hero.NameHeroes,
                 OtvetSelected = 1,
                 OtvetQuest1 = 0.2,
                 OtvetQuest2 = 0.2,
                 OtvetQuest3 = 0.2,
                 OtvetQuest4 = 0.2,
                 OtvetQuest5 = 0.2
             });
         }
         dbContext.SaveChanges();
     }
 }
예제 #13
0
        //Добавление нового героя со своим вопросом // происходит, если мы не можем угадать героя
        public Exception AddHeroesAndQuestion(string nameHero, string nameQuestion, List <Questions> QustSelected)   //QustSelected c передачей параметра выбранного вопроса
        {
            Exception ex = null;

            try
            {
                using (var dbContext = new MyModelContext())
                {
                    List <Questions> QuestSELECTED = new List <Questions>();


                    foreach (var Q in QustSelected)  //иницилизируем список выбранных вопросов
                    {
                        QuestSELECTED.Add(Q);
                    }

                    dbContext.heroes.Add(new Heroes {
                        NameHeroes = nameHero, WeigthHero = 1
                    });                                                                         //добавляем героя
                    //    dbContext.SaveChanges();



                    List <Questions> QuestionDistinct = new List <Questions>();  //получаем список неповторяющихся вопросов
                    foreach (var lq in dbContext.qestions.ToList())
                    {
                        if (QuestionDistinct.Find(item => item.NameQestion == lq.NameQestion) == null)
                        {
                            QuestionDistinct.Add(lq);
                        }
                    }


                    foreach (var Qdistinct in QuestionDistinct)     //проходим по всем вопросам добавляя вероятность по умолчанию и добавляя выбранным вопросам максимальную вероятность ответов
                    {
                        double otv1 = 0.1, otv2 = 0.1, otv3 = 0.1, otv4 = 0.1, otv5 = 0.1;

                        var result = QuestSELECTED.SingleOrDefault(item => item.NameQestion == Qdistinct.NameQestion);   //TODO: ТУТУ ЧТО-ТО ЕСТЬ
                        if (result != null)
                        {
                            switch (result.OtvetSelected)
                            {
                            case 1:
                                otv1 = 0.6;
                                break;

                            case 2:
                                otv2 = 0.6;
                                break;

                            case 3:
                                otv3 = 0.6;
                                break;

                            case 4:
                                otv4 = 0.6;
                                break;

                            case 5:
                                otv5 = 0.6;
                                break;
                            }
                            dbContext.qestions.Add(new Questions
                            {
                                OtvetSelected = 1,
                                NameQestion   = Qdistinct.NameQestion,
                                NameHeroes    = nameHero,
                                OtvetQuest1   = otv1,
                                OtvetQuest2   = otv2,
                                OtvetQuest3   = otv3,
                                OtvetQuest4   = otv4,
                                OtvetQuest5   = otv5
                            });
                        }
                        else
                        {
                            dbContext.qestions.Add(new Questions
                            {
                                OtvetSelected = 1,
                                NameQestion   = Qdistinct.NameQestion,
                                NameHeroes    = nameHero,
                                OtvetQuest1   = 0.2,
                                OtvetQuest2   = 0.2,
                                OtvetQuest3   = 0.2,
                                OtvetQuest4   = 0.2,
                                OtvetQuest5   = 0.2
                            });
                        }
                    }

                    //            dbContext.SaveChanges();
                    //          dbContext.Dispose();dbContext.SaveChanges();



                    foreach (var HERO in dbContext.heroes.ToList())     //добавляем и иницилизируем вопрос для всех героев
                    {
                        dbContext.qestions.Add(new Questions
                        {
                            OtvetSelected = 1,
                            NameQestion   = nameQuestion,
                            NameHeroes    = HERO.NameHeroes,
                            OtvetQuest1   = 0.01,
                            OtvetQuest2   = 0.8,
                            OtvetQuest3   = 0.01,
                            OtvetQuest4   = 0.15,
                            OtvetQuest5   = 0.03,
                        });
                    }
                    dbContext.qestions.Add(new Questions        //добавляем вопрос для нашего героя
                    {
                        OtvetSelected = 1,
                        NameQestion   = nameQuestion,
                        NameHeroes    = nameHero,
                        OtvetQuest1   = 0.8,
                        OtvetQuest2   = 0.01,
                        OtvetQuest3   = 0.15,
                        OtvetQuest4   = 0.01,
                        OtvetQuest5   = 0.03,
                    });


                    dbContext.SaveChanges();
                }
            }
            catch (Exception EX)
            {
                ex = EX;
            }
            return(ex);
        }
예제 #14
0
        public Exception UpdateEndGamePobability(IEnumerable <Questions> ListQuestToHero, string HeroName)
        {
            try
            {
                using (MyModelContext _context = new MyModelContext())
                {
                    var listQuest = (from que in _context.qestions.ToList()
                                     where (que.NameHeroes == HeroName && ListQuestToHero.ToList().Find((items) => items.NameQestion == que.NameQestion) != null)
                                     select que).ToList();

                    var ListQuest = ListQuestToHero.ToList();
                    foreach (var lstq in listQuest)
                    {
                        // находим условное количество по ответов по каждому варианту
                        double?l1 = lstq.OtvetSelected * lstq.OtvetQuest1;
                        double?l2 = lstq.OtvetSelected * lstq.OtvetQuest2;
                        double?l3 = lstq.OtvetSelected * lstq.OtvetQuest3;
                        double?l4 = lstq.OtvetSelected * lstq.OtvetQuest4;
                        double?l5 = lstq.OtvetSelected * lstq.OtvetQuest5;
                        //

                        switch (ListQuestToHero.ToList().Find((item) => item.NameQestion == lstq.NameQestion).OtvetSelected)
                        {
                        case 1:
                            l1++;
                            break;

                        case 2:
                            l2++;
                            break;

                        case 3:
                            l3++;
                            break;

                        case 4:
                            l4++;
                            break;

                        case 5:
                            l5++;
                            break;
                        }
                        lstq.OtvetSelected++;

                        lstq.OtvetQuest1 = l1 / lstq.OtvetSelected;
                        lstq.OtvetQuest2 = l2 / lstq.OtvetSelected;
                        lstq.OtvetQuest3 = l3 / lstq.OtvetSelected;
                        lstq.OtvetQuest4 = l4 / lstq.OtvetSelected;
                        lstq.OtvetQuest5 = l5 / lstq.OtvetSelected;

                        var result = _context.qestions.SingleOrDefault((item) => item.NameHeroes == HeroName && item.NameQestion == lstq.NameQestion);
                        if (result != null)
                        {
                            result.OtvetSelected = lstq.OtvetSelected;
                            result.OtvetQuest1   = lstq.OtvetQuest1;
                            result.OtvetQuest2   = lstq.OtvetQuest2;
                            result.OtvetQuest3   = lstq.OtvetQuest3;
                            result.OtvetQuest4   = lstq.OtvetQuest4;
                            result.OtvetQuest5   = lstq.OtvetQuest5;
                        }
                    }
                    _context.heroes.SingleOrDefault((item) => item.NameHeroes == HeroName).WeigthHero++;

                    _context.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                return(ex);
            }
            return(null);
        }