Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        /// <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);
        }
Exemplo n.º 4
0
        /// <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();
                }
            }
        }