public static double Calcular(this PosicaoTL posicao, DateTime referencia, out ResultDictionary results)
        {
            IList <TabelaAtributo> modelAsAttributes = null;
            IList <Regra>          regras            = null;
            object baseObject = null;

            using (var context = new Context())
            {
                if (posicao.IsPool)
                {
                    modelAsAttributes = posicao.GetModelAsAttributes();
                    baseObject        = posicao;
                    regras            = context.Regra.Where(r => r.Id == 5).ToList();
                }
                else
                {
                    modelAsAttributes = posicao.FuncionarioUnico.GetModelAsAttributes();
                    baseObject        = posicao.FuncionarioUnico;
                    regras            = context.Regra.Where(r => r.Id < 5).ToList();
                }
            }

            var finalModel = posicao.TrataSubstituicoes(referencia, baseObject, modelAsAttributes);
            var parameters = new CalculatorParams(finalModel, regras);
            var result     = new Calculator(parameters).Calculate(out results);

            return(result);
        }
Esempio n. 2
0
        private double Calcular(out ResultDictionary results)
        {
            var posicao    = GetPosicao();
            var referencia = GetReferencia();

            return(posicao.Calcular(referencia, out results));
        }
Esempio n. 3
0
        private void getDataFromWeb(string key)
        {
            BetMatchList = new List <BetMatch>();

            for (int day = 0; day < DAYS; day++)
            {
                var path = string.Format(filePath, day);

                var          data = _webClient.DownloadString(path);
                HtmlDocument doc  = new HtmlDocument();
                doc.LoadHtml(data);

                getDataForLigue(key, doc, day);
            }

            ResultDictionary.Add(Header, BetMatchList);
        }
        public void TestGenerateSubContestResult()
        {
            Contest    contest = new Contest();
            Contestant kalle   = new Contestant("kalle", "Cool");
            Contestant pelle   = new Contestant("pelle", "Holm");
            Contestant lars    = new Contestant("Lars", "Lerin");

            ContestantList contestantList = new ContestantList();

            contestantList.Add(kalle);
            contestantList.Add(pelle);
            contestantList.Add(lars);

            SubContestBranch subContest = new SubContestBranch("Test", contest, contestantList);

            Dive dive  = new Dive(new DiveCode(3.1));
            Dive dive2 = new Dive(new DiveCode(2.1));
            Dive dive3 = new Dive(new DiveCode(3.5));
            Dive dive4 = new Dive(new DiveCode(2.5));
            Dive dive5 = new Dive(new DiveCode(15.0));

            ScoreList scoreListDive = new ScoreList();

            scoreListDive.Add(new Score(8));
            scoreListDive.Add(new Score(8.5));
            scoreListDive.Add(new Score(6.5));
            scoreListDive.Add(new Score(7));
            scoreListDive.Add(new Score(9));
            dive.Scores = scoreListDive;
            // 72.85

            subContest.AddNewDive(kalle, dive);

            ScoreList scoreListDive2 = new ScoreList();

            scoreListDive2.Add(new Score(6));
            scoreListDive2.Add(new Score(7.5));
            scoreListDive2.Add(new Score(6.5));
            scoreListDive2.Add(new Score(7));
            scoreListDive2.Add(new Score(9));
            dive2.Scores = scoreListDive2;
            // 44.1

            subContest.AddNewDive(pelle, dive2);

            ScoreList scoreListDive3 = new ScoreList();

            scoreListDive3.Add(new Score(6));
            scoreListDive3.Add(new Score(4.5));
            scoreListDive3.Add(new Score(6.5));
            scoreListDive3.Add(new Score(5));
            scoreListDive3.Add(new Score(8));
            dive3.Scores = scoreListDive3;
            subContest.AddNewDive(kalle, dive3);
            // 61.25

            ScoreList scoreListDive4 = new ScoreList();

            scoreListDive4.Add(new Score(6));
            scoreListDive4.Add(new Score(7));
            scoreListDive4.Add(new Score(8.5));
            scoreListDive4.Add(new Score(5));
            scoreListDive4.Add(new Score(8));
            dive4.Scores = scoreListDive4;
            subContest.AddNewDive(pelle, dive4);
            //


            ScoreList scoreListDive5 = new ScoreList();

            scoreListDive5.Add(new Score(6));
            scoreListDive5.Add(new Score(7));
            scoreListDive5.Add(new Score(8.5));
            scoreListDive5.Add(new Score(5));
            scoreListDive5.Add(new Score(8));
            dive5.Scores = scoreListDive5;
            subContest.AddNewDive(lars, dive5);
            //

            // get the ResultDictionary containing pairs of contestant and a total score sum.
            ResultDictionary result = subContest.GenerateSubContestResult();



            Assert.AreEqual(3, result.Count);

            foreach (var score in result)
            {
                Console.WriteLine(score.Key.FirstName + ": " + score.Value);
            }

            Assert.AreEqual(315, result.First().Value);

            Console.WriteLine();

            // getting same data from our Contest object
            ResultDictionary r = contest.GetSubContestResultDictionary(subContest);

            Assert.AreEqual(3, r.Count);

            foreach (var score in r)
            {
                Console.WriteLine(score.Key.FirstName + ": " + score.Value);
            }

            Assert.AreEqual(315, r.First().Value);
        }