public static string BuildWagonDataOfAllTypes(VoteServiceObject vso)
        {
            string            allWagonData = "";
            VoteServiceObject clonedVSO    = vso.DeepClone <VoteServiceObject>();

            int         settingsCount     = 3;
            List <bool> defaultVCSettings = new List <bool>();

            defaultVCSettings.Add(true);
            defaultVCSettings.Add(false);
            defaultVCSettings.Add(true);



            ResultsObject defaultResultObject = null;

            List <ResultsObject> resultsObjects = new List <ResultsObject>();

            List <HistoryServiceObject> hsosToParse = new List <HistoryServiceObject>();

            for (int i = 0; i < Math.Pow(2, settingsCount); i++)
            {
                BitArray             b         = new BitArray(new int[] { i });
                IEnumerable <bool>   boolArray = b.Cast <bool>().Select(bit => bit ? true : false).ToArray().Take(settingsCount);
                HistoryServiceObject hso       = new HistoryServiceObject(clonedVSO, boolArray.ElementAt(0), boolArray.ElementAt(1), boolArray.ElementAt(2));

                resultsObjects.Add(BuildHistoryLogic.BuildOneResultsObject(hso));
                clonedVSO = vso.DeepClone <VoteServiceObject>();

                if (defaultResultObject == null)
                {
                    if (boolArray.SequenceEqual(defaultVCSettings))
                    {
                        defaultResultObject = resultsObjects[i];
                    }
                }

                allWagonData += resultsObjects[i].WagonText;
            }

            return(allWagonData);
        }
        public static string BuildVoteCount(HistoryServiceObject hso)
        {
            string        returnString = "";
            ResultsObject ro           = null;

            try
            {
                ro = BuildOneResultsObject(hso);

                if (hso.DisplayAllVCs)
                {
                    foreach (VoteCount vc in ro.AllVCs)
                    {
                        returnString += vc.LatestVCOutput; //vc.buildLatest (vc.DayNumber, priorVCNumber, flavorText, deadlineCode, days[vc.DayNumber - 1].DeathsOvernight.Count) + History.NEW_LINE_HERE;
                    }
                }
                else
                {
                    returnString = ro.FinalVoteCount.LatestVCOutput;
                }
            }
            catch (Exception e)
            {
                return("History Report failed: " + "Report object: " + ((ro == null) ? "null" : "not null" + ("FinalVoteCount: " + ((ro.FinalVoteCount == null) ? "null" : "not null"))) + "INNER EXCEPTION: " + e.InnerException + "MESSAGE: " + e.Message + " STACK TRACE: " + e.StackTrace);
            }

            //Add timings
            List <long> millisecondCallList = hso.VSO.MillisecondsEachCall;

            if (millisecondCallList != null)
            {
                returnString += ((hso.VSO.IsRestCall) ? "<br/><br/>" : "") + "Performed " + ((long)hso.VSO.MillisecondsEachCall.Count) + " calls in " + ((long)millisecondCallList.Sum() / (long)1000) + " seconds. With an average of " + (millisecondCallList.Average() / (long)1000) + " seconds per call. ";
            }


            return(returnString);
        }
 private static ResultsObject BuildOneResultsObject(HistoryServiceObject hso)//(List<Day> days, List<Player> allPlayers, bool sortBy, bool simple, bool lSort, int priorVCNumber, string flavorText, string deadlineCode, bool cleanDay)
 {
     return(createWagonData(hso.Days, hso.AllPlayers, hso.SortBy, hso.Simple, hso.LSort, hso.PriorVCNumber, hso.FlavorText, hso.DeadlineCode, hso.CleanDay, hso.IsRestCall, hso.ColorCode, hso.ProdTimer, hso.FontOverride, hso.AreaTagsOn, hso.DividerOverride, hso.ShowLLevel, hso.ShowZeroCountWagons, hso.DayviggedPlayers, hso.ResurrectedPlayers, hso.Replacements));
 }
        public static string BuildWagonData(HistoryServiceObject hso)
        {
            ResultsObject ro = BuildOneResultsObject(hso);

            return(ro.WagonText);
        }