public static List <WarRanking> SelectRankingsByClanWarId(int id, bool sortedByPick) { List <WarRanking> rankings = new List <WarRanking>(); using (var dbContext = new HouseOfClansEntities()) { rankings = dbContext.WarRankings.Where(p => p.clanWarId == id && !p.optOut).ToList(); if (sortedByPick) { List <ClanWarPick> warMapMembers = ClanWarPicksManager.SelectAllByWarId(id).ToList(); List <WarRanking> sortedRankings = new List <WarRanking>(); warMapMembers.ForEach(delegate(ClanWarPick sortedPick) { WarRanking sortedRanking = rankings.Where(p => p.clanUserId == sortedPick.clanUserId).FirstOrDefault(); if (sortedRanking != null && sortedRanking.clanWarId == id) { sortedRankings.Add(sortedRanking); } }); rankings = new List <WarRanking>(); rankings = sortedRankings; } } return(rankings); }
public static List <ClanWarPick> SelectAttacksAvailableForWar(int id) { List <ClanWarPick> memberList = ClanWarPicksManager.SelectAllByWarId(id); List <WarRanking> allMemberAttacks = RankingsManager.SelectRankingsByClanWarId(id); if (allMemberAttacks.Any()) { List <int> membersWithBothAttacks = allMemberAttacks.GroupBy(g => g.clanUserId).Where(p => p.Count() == 2).Select(p => p.Key).ToList(); memberList = memberList.Where(p => !membersWithBothAttacks.Contains(p.clanUserId)).ToList(); } return(memberList); }
/// <summary> /// Deletes the Picks of the current Clan War /// </summary> public static bool Delete(int warId) { bool isDeleted = false; using (var dbContext = new HouseOfClansEntities()) { dbContext.ClanWarPicks.RemoveRange(dbContext.ClanWarPicks.Where(p => p.clanWarId == warId)); dbContext.SaveChanges(); } isDeleted = !ClanWarPicksManager.SelectAllByWarId(warId).Any(); return(isDeleted); }
/// <summary> /// Inserts or Updates the Clan War Picks depending on the parameters received. /// </summary> /// <param name="clanWarPickViewModel">A ClanWarPickViewModel object, if its Id is NULL then do an Insert, else Updates.</param> public static void Upsert(List <ClanWarPickViewModel> clanWarPicksList) { using (var dbContext = new HouseOfClansEntities()) { foreach (ClanWarPickViewModel pick in clanWarPicksList) { ClanWarPick clanWarPick = ClanWarPicksManager.ConvertViewToModel(pick); if (pick.Id == null) { clanWarPick.addedOn = DateTime.Now; dbContext.ClanWarPicks.Add(clanWarPick); } else { clanWarPick.updatedOn = DateTime.Now; dbContext.Entry(clanWarPick).State = EntityState.Modified; dbContext.Entry(clanWarPick).Property(p => p.clanMemberWarPosition).IsModified = false; } dbContext.SaveChanges(); } } }