예제 #1
0
        private void LoadSunyveilsReviews()
        {
            //each line=
            //cardname, rating, splashable, conditional
            foreach (var line in File.ReadAllLines(@"tierLists/Sunyveil.csv").Skip(1))
            {
                var review  = new SunyveilCardReview();
                var columns = line.Split(',');

                int deltaIndex = 0;
                for (int i = 0; i < columns.Length;)
                {
                    //stores the number of index jumps we did on this iteration
                    int numberOfIndexJumps = 1;

                    var finalColumn = columns[i];

                    if (finalColumn.StartsWith("\""))
                    {
                        int quotesOccurence = finalColumn.Split('\"').Length - 1;;
                        while (quotesOccurence != 2 && (i + numberOfIndexJumps) < columns.Length)
                        {
                            finalColumn    += "," + columns[i + numberOfIndexJumps];
                            quotesOccurence = finalColumn.Split('\"').Length - 1;
                            numberOfIndexJumps++;
                        }
                        finalColumn = finalColumn.Replace("\"", "");
                    }

                    if (i == nameIndex)
                    {
                        review.Name = finalColumn;
                    }
                    else if (i == ratingIndex + deltaIndex)
                    {
                        review.AverageRating = finalColumn;
                    }
                    else if (i == splashableIndex + deltaIndex)
                    {
                        review.Splashable = finalColumn.Equals("TRUE");
                    }
                    else if (i == conditionalIndex + deltaIndex)
                    {
                        review.Conditional = finalColumn.Equals("TRUE");
                    }

                    deltaIndex += (numberOfIndexJumps - 1);
                    i          += numberOfIndexJumps;
                }

                if (!cardReviewsByNameByTeam.ContainsKey(new CardName(review.Name)))
                {
                    cardReviewsByNameByTeam[new CardName(review.Name)] = new Dictionary <Team, CardReview>();
                }
                cardReviewsByNameByTeam[new CardName(review.Name)][Team.SUNYVEIL] = review;
            }
        }
예제 #2
0
        private ReviewDataSource()
        {
            LoadCardReviews();
            foreach (var key in cardReviewsByNameByTeam.Keys)
            {
                bool tdcHas      = cardReviewsByNameByTeam[key].ContainsKey(Team.TDC);
                bool sunyveilHas = cardReviewsByNameByTeam[key].ContainsKey(Team.SUNYVEIL);
                if (tdcHas != sunyveilHas)
                {
                    if (!tdcHas)
                    {
                        var review = new TdcCardReview()
                        {
                            Name          = key.name,
                            Pack          = "0",
                            AverageRating = cardReviewsByNameByTeam[key][Team.SUNYVEIL].AverageRatingForColor().ToString("0.0"),
                        };

                        review.RatingsByReviewer.Add("Flash", "");
                        review.RatingsByReviewer.Add("Drifter", "");
                        review.RatingsByReviewer.Add("Mgallop", "");
                        review.RatingsByReviewer.Add("Isomorphic", "");
                        review.CommentsByReviewer.Add("Flash", "");
                        review.CommentsByReviewer.Add("Drifter", "");
                        review.CommentsByReviewer.Add("Mgallop", "");
                        review.CommentsByReviewer.Add("Isomorphic", "");

                        cardReviewsByNameByTeam[key][Team.TDC] = review;
                    }
                    else
                    {
                        var review = new SunyveilCardReview()
                        {
                            Name          = key.name,
                            AverageRating = SunyveilCardReview.AverageRatingStringFromFloat(cardReviewsByNameByTeam[key][Team.TDC].AverageRatingForColor()),
                            Splashable    = false,
                            Conditional   = false,
                        };

                        cardReviewsByNameByTeam[key][Team.SUNYVEIL] = review;
                    }
                }
            }

            foreach (var key in cardReviewsByNameByTeam.Keys)
            {
                bool tdcHas      = cardReviewsByNameByTeam[key].ContainsKey(Team.TDC);
                bool sunyveilHas = cardReviewsByNameByTeam[key].ContainsKey(Team.SUNYVEIL);
                if (tdcHas != sunyveilHas)
                {
                    Console.WriteLine($"Found key \"{key.name}\" on TDC " + tdcHas + " on Sunyveil " + sunyveilHas);
                }
            }
        }