public Ranking(Window owner, List <RankingDto> rankings) { Owner = owner; InitializeComponent(); if (rankings.Count() == 0) { var emptyPage = new RankingDto { Gamemode = new GamemodeDto { Bombs = -1, Height = -1, Width = -1, Name = "Empty" }, Total = 0 }; rankings.Add(emptyPage); } Gamemodes.ItemsSource = rankings; var enumerator = Gamemodes.ItemsSource.GetEnumerator(); enumerator.MoveNext(); Gamemodes.SelectedItem = enumerator.Current; }
public async Task <IHttpActionResult> GetRanking(int id) { // serve una group by RankingDto ranking = await(from rasc in db.Races_Scores from d in db.Drivers from t in db.Teams from r in db.Races from c in db.Countries where rasc.Id == id where rasc.ExtDriver == d.Id && (t.ExtFirstDriver == rasc.Driver.Id || t.ExtSecondDriver == rasc.Driver.Id) where rasc.ExtRace == r.Id && c.CountryCode == rasc.Race.ExtCountry select new RankingDto { Id = rasc.Id, DriverFirstname = rasc.Driver.Firstname, DriverLastname = rasc.Driver.Lastname, CountryCode = c.CountryCode, TeamName = t.Name, Points = rasc.Score.Points }).FirstOrDefaultAsync(); if (ranking == null) { return(NotFound()); } return(Ok(ranking)); }
public async Task <IEnumerable <RankingDto> > GetRankAsync() { var connStr = DbConnection.connectionString; var cmdStr = "select * from rank_table"; List <RankingDto> teams = new List <RankingDto>(); using (var conn = new NpgsqlConnection(connStr)) { using (var cmd = new NpgsqlCommand(cmdStr, conn)) { await conn.OpenAsync(); using (NpgsqlDataReader rd = await cmd.ExecuteReaderAsync()) { while (rd.Read()) { var team = new RankingDto(); team.WinMatch = Convert.ToInt32(rd["win_match"]); team.DrawMatch = rd.GetInt32("draw_match"); team.LoseMatch = rd.GetInt32("lose_match"); team.WinMatch = rd.GetInt32("win_match"); team.TeamName = rd["team_name"].ToString(); team.TeamImage = rd["team_image"].ToString(); team.GoalFor = rd.GetInt32("goal_for"); team.GoalAgainst = rd.GetInt32("goal_againt"); team.MatchPlayed = rd.GetInt32("played"); team.Point = rd.GetInt32("point"); teams.Add(team); } } } } return(teams); }
internal virtual int AddStageAndLevelDatas(RankingDto ranking, bool untied) { int points = (100 - ranking.Rank) - 2; if (points < 0) { points = 0; } if (ranking.Rank == 1) { points = 100; RecordsCount++; if (untied) { UntiedRecordsCount++; } } else if (ranking.Rank == 2) { points = 97; } Points += points; if (ranking.Time < UnsetTimeValueSeconds) { CumuledTime -= UnsetTimeValueSeconds - ranking.Time; } return(points); }
public Boolean deleteRanking(RankingDto obj) { try { IRankingSvc svc = (IRankingSvc)this.getService(typeof(IRankingSvc).Name); return svc.deleteRanking(obj); } catch (ServiceLoadException ex) { return false; } }
public RankingDto selectRankingById(RankingDto obj) { try { IRankingSvc svc = (IRankingSvc)this.getService(typeof(IRankingSvc).Name); return svc.selectRankingById(obj); } catch (ServiceLoadException ex) { return null; } }
public IResult DeleteRanking(RankingDto rankingDto) { using WordBookContext db = new(); Ranking deletedRanking = db.Rankings.Where(r => r.RankId == rankingDto.RankId).SingleOrDefault(); if (deletedRanking == null) { return(new ErrorResult(Messages.RankingNotFound)); } db.Rankings.Remove(deletedRanking); db.SaveChanges(); return(new SuccessResult(Messages.RankingDeleted)); }
public RankingDto selectRankingById(RankingDto obj) { NewRecruiteeService.ServiceWCFClient svc = new NewRecruiteeService.ServiceWCFClient(); try { return svc.selectRankingById(obj); } catch (Exception ex) { return null; } }
public Boolean insertRanking(RankingDto obj) { using (NewRecruiteeService.ServiceWCFClient svc = new NewRecruiteeService.ServiceWCFClient()) { try { return svc.insertRanking(obj); } catch (Exception ex) { return false; } } }
public void Ranking() { var achievements = new List <AchievementDto>(); var gamemode = new GamemodeDto(); var total = 10; var game = new RankingDto() { Achievements = achievements, Gamemode = gamemode, Total = total }; Assert.IsTrue(game.Achievements == achievements); Assert.IsTrue(game.Gamemode == gamemode); Assert.IsTrue(game.Total == total); }
public IResult UpdateRanking(RankingDto rankingDto) { using WordBookContext db = new(); Ranking updatedRanking = db.Rankings.Where(r => r.RankId == rankingDto.RankId).SingleOrDefault(); if (updatedRanking == null) { return(new ErrorResult(Messages.RankingNotFound)); } updatedRanking.UserId = rankingDto.UserId; updatedRanking.RankTypeId = rankingDto.RankTypeId; updatedRanking.Score = rankingDto.Score; updatedRanking.UpdatedAt = System.DateTimeOffset.UtcNow.ToUnixTimeMilliseconds().ToString(); db.SaveChanges(); return(new SuccessResult(Messages.RankingUpdated)); }
public IResult AddRanking(RankingDto rankingDto) { using WordBookContext db = new(); if (db.Rankings.Any(r => r.RankTypeId == rankingDto.RankTypeId)) { return(new ErrorResult(Messages.RankingAlreadyExists)); } Ranking addedRanking = new() { RankId = 0, UserId = rankingDto.UserId, RankTypeId = rankingDto.RankTypeId, Score = rankingDto.Score, UpdatedAt = System.DateTimeOffset.UtcNow.ToUnixTimeMilliseconds().ToString() }; db.Rankings.Add(addedRanking); db.SaveChanges(); return(new SuccessResult(Messages.RankingAdded)); }
public List <RankingDto> GetRanking(IEnumerable <Gamemode> dtos, int max) { var achievements = _liteDatabase.GetCollection <AchievementRow>(_settings.AchievementsTable); var gamemodes = _liteDatabase.GetCollection <GamemodeRow>(_settings.GamemodesTable); var pages = new List <RankingDto>(); foreach (var dto in dtos) { var gamemodeId = gamemodes.Query() .Where(gamemode => gamemode.Bombs == dto.Bombs && gamemode.Height == dto.Height && gamemode.Name == dto.Name && gamemode.Width == dto.Width) .Select(gamemode => gamemode.GamemodeId) .FirstOrDefault(); if (gamemodeId == 0) { continue; } var achievementsList = achievements.Query() .Where(achievement => achievement.GamemodeId == gamemodeId) .OrderBy(achievement => achievement.Time) .ToList(); var page = new RankingDto { Achievements = _mapper.Map <IEnumerable <AchievementDto> >(achievementsList.Take(max)), Gamemode = _mapper.Map <GamemodeDto>(dto), Total = achievementsList.Count }; pages.Add(page); } return(pages); }
/// <inheritdoc /> public async Task InsertRankingEntryAsync(RankingDto ranking) { using (IDbConnection connection = _connectionProvider.TheEliteConnection) { await connection .QueryAsync( ToPsName(_insertRankingEntryPsName), new { @ranking_type_id = ranking.RankingTypeId, @stage_id = (long)ranking.Stage, @level_id = (long)ranking.Level, @player_id = ranking.PlayerId, @time = ranking.Time, @date = ranking.Date, @rank = ranking.Rank, @entry_date = ranking.EntryDate, @is_simulated_date = ranking.IsSimulatedDate ? 1 : 0 }, commandType : CommandType.StoredProcedure) .ConfigureAwait(false); } }
public Boolean deleteRanking(RankingDto obj) { using (NewRecruiteeService.ServiceWCFClient svc = new NewRecruiteeService.ServiceWCFClient()) { try { RankingDto rec = svc.selectRankingById(obj); if (rec != null) { return svc.deleteRanking(obj); } else { return false; } } catch (Exception ex) { return false; } } }
public RankingDto selectRankingById(String RankingId) { RankingManager mgr = new RankingManager(); RankingDto obj = new RankingDto(); obj.RankingId = RankingId; return mgr.selectRankingById(obj); }
// Gets ranking entries for a stage and level private async Task <List <RankingDto> > GetStageLevelRankingAsync( RankingRequest request, Stage stage, Level level) { var entries = await GetStageLevelEntriesAsync(request, stage, level) .ConfigureAwait(false); // Groups and sorts by date var entriesDateGroup = new SortedList <DateTime, List <EntryDto> >( entries .GroupBy(e => e.Date.Value.Date) .ToDictionary( eGroup => eGroup.Key, eGroup => eGroup.ToList())); var rankingsToInsert = new List <RankingDto>(); // For the current date + previous days // Gets the min time entry for each player // Then orders by entry time overall (ascending) var selectedEntries = entriesDateGroup .Where(kvp => kvp.Key <= request.RankingDate) .SelectMany(kvp => kvp.Value) .GroupBy(e => e.PlayerId) .Select(eGroup => eGroup.First(e => e.Time == eGroup.Min(et => et.Time))) .OrderBy(e => e.Time) .ThenBy(e => e.Date.Value) .ToList(); var pos = 1; var posAgg = 1; long?currentTime = null; foreach (var entry in selectedEntries) { if (!currentTime.HasValue) { currentTime = entry.Time; } else if (currentTime == entry.Time) { posAgg++; } else { pos += posAgg; posAgg = 1; currentTime = entry.Time; } var ranking = new RankingDto { Date = request.RankingDate, Level = entry.Level, PlayerId = entry.PlayerId, Rank = pos, Stage = entry.Stage, Time = entry.Time, EntryDate = entry.Date.Value, IsSimulatedDate = entry.IsSimulatedDate }; rankingsToInsert.Add(ranking); } return(rankingsToInsert); }