public void Post(string contestID, string key) { if (ConfigurationManager.AppSettings["ApiKey"] != key) { return; } APerfsDB db = new APerfsDB(); APerfs aPerfs = db.GetAPerfs(contestID); bool isContainContest = aPerfs != null; if (!isContainContest) { aPerfs = new APerfs(contestID); } double defaultValue = contestID.Substring(0, 3) == "abc" ? 800 : 1600; Standings standings = Standings.GetStandings(contestID); StandingData[] datas = standings.StandingsData; Dictionary <string, double> dict = aPerfs.APerfDic; int count = 0; foreach (var standing in datas) { if (!standing.IsRated) { continue; } if (dict.ContainsKey(standing.UserScreenName)) { continue; } CompetitionResult[] results = CompetitionResult.GetFromJson(standing.UserScreenName); double aperf = CompetitionResult.CalcAPerf(results, defaultValue); dict.Add(standing.UserScreenName, aperf); count++; if (count >= 100) { Update(); count = 0; } } Update(); void Update() { aPerfs.APerfDic = dict; if (!isContainContest) { db.CreateAPerfs(aPerfs); } else { db.UpdateAPerfs(aPerfs); } } }
protected CompetitionResult GetCompetitionResult() { if (_competitionResult == null) { var repository = new Repository(); _competitionResult = repository.GetCompetitionResult(); } return(_competitionResult); }
protected void InvokeAction(Action <CompetitionResult> action, CompetitionResult competitionResult, string logMessage) { var watch = Stopwatch.StartNew(); action(competitionResult); watch.Stop(); WriteToLog(logMessage, watch.Elapsed); }
public static CompetitorResult FromResult(CompetitionResult result) { var score = 0; if (result == CompetitionResult.Winner) { score++; } return(new CompetitorResult(result, score)); }
public void addPoints(CompetitionResult result, int duration, int rank) { if (rank < 100) { result.pointsBalance = (100 - rank) * duration; } ApplicationUser serviceProvider = db.Users.Find(result.ServiceProviderId); serviceProvider.ServiceProviderPoints += result.pointsBalance; db.Entry(serviceProvider).State = System.Data.Entity.EntityState.Modified; }
public void DifferentDepths() { IDeterministicState startState = Utils.GetEmptyTicTacToeState(); int minSearchDepth = 2; int maxSearchDepth = 5; SearchEngine engine = new SearchEngine(); CompetitionResult competitionResult = engine.Compete(startState, maxSearchDepth, minSearchDepth); // Print some of the results Console.WriteLine("Max Search Time " + competitionResult.MaxTotalTime); Console.WriteLine("Min Search Time " + competitionResult.MinTotalTime); Console.WriteLine("Final Score " + competitionResult.FinalState.Evaluate(0, new List <IState>())); }
public CompetitionResult pushPayment(CompetitionResult result) { CompetitionBalance item = new CompetitionBalance(); item.Method = "Competition"; item.CreationDate = DateTime.Now; item.LastModificationDate = DateTime.Now; item.Amount = result.TotalBalance; item.ServiceProviderId = result.ServiceProviderId; item.Status = "Active"; item.Currency = "$"; db.CompetitionBalances.Add(item); return(result); }
public void DifferentEngines() { IDeterministicState startState = Utils.GetEmptyTicTacToeState(); int searchDepth = 5; int playDepth = 100; SearchEngine engine1 = new SearchEngine(); SearchEngine engine2 = new SearchEngine(); CompetitionResult competitionResult = CompetitionManager.Compete(engine1, engine2, startState, searchDepth, searchDepth, playDepth); // Print some of the results Console.WriteLine("Max Search Time " + competitionResult.MaxTotalTime); Console.WriteLine("Min Search Time " + competitionResult.MinTotalTime); Console.WriteLine("Final Score " + competitionResult.FinalState.Evaluate(0, new List <IState>())); }
public void MinAlternateEvaluation() { IDeterministicState startState = Utils.GetEmptyTicTacToeState(); int searchDepth = 6; SearchEngine engine = new SearchEngine(); CompetitionResult competitionResult = engine.Compete(startState, searchDepth, minAlternateEvaluation: (s, d, l) => { // Some alternate evaluation goes here - you probably don't really want to return 0 return(0); }); // Print some of the results Console.WriteLine("Max Search Time " + competitionResult.MaxTotalTime); Console.WriteLine("Min Search Time " + competitionResult.MinTotalTime); Console.WriteLine("Final Score " + competitionResult.FinalState.Evaluate(0, new List <IState>())); }
public List <CompetitionResult> getFastest(List <ApplicationUser> users, DateTime startDate, bool tempResult) { List <CompetitionResult> result = new List <CompetitionResult>(); foreach (var user in users) { List <Service> services = helper.getUserServices(user.Id, startDate); List <Service> activeSerives = helper.getServicesFiltered(services, CoreController.ServiceStatus.Active.ToString()); List <Service> doneServices = helper.getServicesFiltered(services, CoreController.ServiceStatus.Done.ToString()); double speed = UserHelperLibrary.ServiceProviderSpeed(doneServices.Count, startDate); CompetitionResult temp = new CompetitionResult { Speed = speed < 1 ? 1 : speed, ServiceProviderId = user.Id, NumberOfActiveServices = activeSerives.Count(), NumberOfDoneServices = doneServices.Count(), LastModificationDate = DateTime.Now, CreationDate = DateTime.Now, TotalBalance = 0, SuspendedBalance = 0, AvailableBalance = 0, Rating = 0, AvgServicesInOneDay = 0 //TotalBalance = balance.TransferedBalance, //AvailableBalance = balance.DoneBalance, //SuspendedBalance = balance.SuspendedBalance, }; if (tempResult) { temp.ServiceProvider = user; } result.Add(temp); //db.CompetitionResults.Add(temp); } result = result.OrderByDescending(a => a.Speed).ToList(); int j = 1; foreach (var item in result) { item.rank = j; j++; } return(result); //return InsertionSortNew(result); }
public List <CompetitionResult> getMostDoneServices(List <ApplicationUser> users, DateTime startDate, bool tempResult) { List <CompetitionResult> result = new List <CompetitionResult>(); foreach (var user in users) { List <Service> services = helper.getUserServices(user.Id, startDate); List <Service> activeSerives = helper.getServicesFiltered(services, CoreController.ServiceStatus.Active.ToString()); List <Service> doneServices = helper.getServicesFiltered(services, CoreController.ServiceStatus.Done.ToString()); double Rating = helper.getUserRating(doneServices); CompetitionResult temp = new CompetitionResult { ServiceProviderId = user.Id, NumberOfActiveServices = activeSerives.Count(), NumberOfDoneServices = doneServices.Count(), LastModificationDate = DateTime.Now, CreationDate = DateTime.Now, //Rating = Rating //TotalBalance = balance.TransferedBalance, //AvailableBalance = balance.DoneBalance, //SuspendedBalance = balance.SuspendedBalance, }; if (tempResult) { temp.ServiceProvider = user; } result.Add(temp); } result = result.OrderByDescending(a => a.NumberOfDoneServices).ToList(); int j = 1; foreach (var item in result) { item.rank = j; j++; } return(result); }
public void Build_UsingMainTeamsLostCompetition_IncludesOpponentsTotalsInResults() { // 1. Arrange var mainTeam = new Team("Loser"); var opponentsTeam = new Team("Winner"); // 2. Act var mainTeamsCompetitionResult = new CompetitionResult { ParticipatingTeam = mainTeam, OpponentsTeam = opponentsTeam, TotalGoalsAgainstOpponent = 0, TotalGoalsMadeByOpponent = 1, }; _poolStageTableRowsBuilder.Add(mainTeamsCompetitionResult); var someOtherCompetitionResult = new CompetitionResult { ParticipatingTeam = new Team(""), OpponentsTeam = new Team(""), TotalGoalsAgainstOpponent = 0, TotalGoalsMadeByOpponent = 0, }; _poolStageTableRowsBuilder.Add(someOtherCompetitionResult); var poolStageTableRows = _poolStageTableRowsBuilder.Build(); // 3. Assert var opponentsRow = poolStageTableRows.Single(record => record.Team == opponentsTeam); Assert.AreEqual( _poolStageConfiguration.TotalPointsToIncreaseOnWonRounds, opponentsRow.TotalPoints ); Assert.AreEqual(0, opponentsRow.TotalGoalsMadeByOpponents); Assert.AreEqual(1, opponentsRow.TotalGoalsAgainstOpponents); Assert.AreEqual(1, opponentsRow.GoalDifference); }
public CompetitorResult(CompetitionResult result, int score) { Result = result; Score = score; }