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); }
private double Calcular(out ResultDictionary results) { var posicao = GetPosicao(); var referencia = GetReferencia(); return(posicao.Calcular(referencia, out results)); }
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); }