Пример #1
0
        // ---------[ FUNCTIONALITY ]---------
        /// <summary>Formats a value as a display string.</summary>
        public static string FormatValue(object value, Method method, string toStringParameter)
        {
            string displayString = string.Empty;

            if (string.IsNullOrEmpty(toStringParameter))
            {
                // Default value for ToString() in most cases is (G)eneral
                toStringParameter = "G";
            }

            switch (method)
            {
            case Method.ByteCount:
            {
                Int64 bytes = 0;

                if (value != null)
                {
                    bytes = (Int64)value;
                }

                displayString = ValueFormatting.ByteCount(bytes, toStringParameter);
            }
            break;

            case Method.AbbreviatedNumber:
            {
                int number = 0;

                if (value != null)
                {
                    number = (int)value;
                }

                displayString = ValueFormatting.AbbreviateInteger(number, toStringParameter);
            }
            break;

            case Method.TimeStampAsDateTime:
            {
                if (value == null)
                {
                    displayString = "--";
                }
                else
                {
                    displayString = ServerTimeStamp.ToLocalDateTime((int)value).ToString(toStringParameter);
                }
            }
            break;

            case Method.Percentage:
            {
                if (value == null)
                {
                    displayString = "--%";
                }
                else
                {
                    displayString = ((float)value * 100.0f).ToString(toStringParameter) + "%";
                }
            }
            break;

            case Method.SecondsAsTime:
            {
                int seconds = 0;

                if (value != null)
                {
                    seconds = (int)value;
                }

                displayString = ValueFormatting.SecondsAsTime(seconds);
            }
            break;

            default:
            {
                displayString = null;

                if (value != null &&
                    !string.IsNullOrEmpty(toStringParameter))
                {
                    if (value is float)
                    {
                        displayString = ((float)value).ToString(toStringParameter);
                    }
                    else if (value is int)
                    {
                        displayString = ((int)value).ToString(toStringParameter);
                    }
                    else if (value is Int64)
                    {
                        displayString = ((Int64)value).ToString(toStringParameter);
                    }
                }

                if (displayString == null)
                {
                    if (value != null)
                    {
                        displayString = value.ToString();
                    }
                    else
                    {
                        displayString = string.Empty;
                    }
                }
            }
            break;
            }
            return(displayString);
        }
Пример #2
0
        private void BuildDisplayMap()
        {
            m_displayMapping = new Dictionary <Text, GetDisplayString>();

            if (popularityRankDisplay != null)
            {
                m_displayMapping.Add(popularityRankDisplay,
                                     (s) => ValueFormatting.AbbreviateInteger(s.popularityRankPosition, "0.0"));
            }
            if (popularityModCountDisplay != null)
            {
                m_displayMapping.Add(popularityModCountDisplay,
                                     (s) => ValueFormatting.AbbreviateInteger(s.popularityRankModCount, "0.0"));
            }
            if (downloadCountDisplay != null)
            {
                m_displayMapping.Add(downloadCountDisplay,
                                     (s) => ValueFormatting.AbbreviateInteger(s.downloadCount, "0.0"));
            }
            if (subscriberCountDisplay != null)
            {
                m_displayMapping.Add(subscriberCountDisplay,
                                     (s) => ValueFormatting.AbbreviateInteger(s.subscriberCount, "0.0"));
            }
            if (ratingCountDisplay != null)
            {
                m_displayMapping.Add(ratingCountDisplay,
                                     (s) => ValueFormatting.AbbreviateInteger(s.ratingCount, "0.0"));
            }
            if (ratingPositiveCountDisplay != null)
            {
                m_displayMapping.Add(ratingPositiveCountDisplay,
                                     (s) => ValueFormatting.AbbreviateInteger(s.ratingPositiveCount, "0.0"));
            }
            if (ratingPositivePercentageDisplay != null)
            {
                m_displayMapping.Add(ratingPositivePercentageDisplay,
                                     (s) => (s.ratingCount > 0
                                             ? (100f * (float)s.ratingPositiveCount / (float)s.ratingCount).ToString("0") + "%"
                                             : "--"));
            }
            if (ratingNegativeCountDisplay != null)
            {
                m_displayMapping.Add(ratingNegativeCountDisplay,
                                     (s) => ValueFormatting.AbbreviateInteger(s.ratingNegativeCount, "0.0"));
            }
            if (ratingNegativePercentageDisplay != null)
            {
                m_displayMapping.Add(ratingNegativePercentageDisplay,
                                     (s) => (s.ratingCount > 0
                                             ? (100f * (float)s.ratingNegativeCount / (float)s.ratingCount).ToString("0") + "%"
                                             : "--"));
            }
            if (ratingWeightedAggregateDisplay != null)
            {
                m_displayMapping.Add(ratingWeightedAggregateDisplay,
                                     (s) => (100f * s.ratingWeightedAggregate).ToString("0") + "%");
            }
            if (ratingAsTextDisplay != null)
            {
                m_displayMapping.Add(ratingAsTextDisplay,
                                     (s) => s.ratingDisplayText);
            }
        }