private static decimal GetMultipler(MemoryUnits units)
        {
            decimal unitsMulitpler;

            if (UnitsMulitpler.TryGetValue(units, out unitsMulitpler))
            {
                return(unitsMulitpler);
            }

            unitsMulitpler = 1 / Convert.ToDecimal((int)units);

            UnitsMulitpler.Add(units, unitsMulitpler);
            return(unitsMulitpler);
        }
        private static string GetUnitString(MemoryUnits units)
        {
            string unitsString;

            if (UnitsAsString.TryGetValue(units, out unitsString))
            {
                return(unitsString);
            }

            var memInfo    = MemoryUnitsType.GetMember(units.ToString());
            var attributes = memInfo[0].GetCustomAttributes(typeof(DescriptionAttribute), false);

            unitsString = ((DescriptionAttribute)attributes[0]).Description;

            UnitsAsString.Add(units, unitsString);
            return(unitsString);
        }
Example #3
0
        private static string GetUnitString(MemoryUnits units)
        {
            string unitsString;

            if (UnitsAsString.TryGetValue(units, out unitsString))
            {
                return(unitsString);
            }

            string unitAsString;

            switch (units)
            {
            case MemoryUnits.Bytes:
                unitAsString = "Bytes";
                break;

            case MemoryUnits.Kilo:
                unitAsString = "Kilo";
                break;

            case MemoryUnits.Mega:
                unitAsString = "Mega";
                break;

            case MemoryUnits.Giga:
                unitAsString = "Giga";
                break;

            default:
                throw new ArgumentOutOfRangeException("units", @"Unknown units of memory!");
            }

            var memInfo    = MemoryUnitsType.GetMember(unitAsString);
            var attributes = memInfo[0].GetCustomAttributes(typeof(DescriptionAttribute), false);

            unitsString = ((DescriptionAttribute)attributes[0]).Description;

            UnitsAsString.Add(units, unitsString);
            return(unitsString);
        }
Example #4
0
 /// <summary>
 /// Приведение к человекочитабельному размеру файла
 /// </summary>
 /// <param name="sizeInBytes">Размер файла</param>
 /// <param name="sizeValue">Значение</param>
 /// <param name="sizeUnit">Единица измерения</param>
 public static void SizeInBytesToUserFriendlyFileSize(this long sizeInBytes, out double sizeValue, out MemoryUnits sizeUnit)
 {
     if (sizeInBytes == 0L)
     {
         sizeValue = 0.0;
         sizeUnit  = MemoryUnits.Bytes;
     }
     else
     {
         sizeInBytes = Math.Abs(sizeInBytes);
         int num = Convert.ToInt32(Math.Floor(Math.Log(sizeInBytes, 1024.0)));
         sizeValue = Math.Round(sizeInBytes / Math.Pow(1024.0, num), 1);
         sizeValue = Math.Sign(sizeInBytes) * sizeValue;
         sizeUnit  = (MemoryUnits)num;
     }
 }
 private static string ValueAsString(Func <decimal> valueFunc, MemoryUnits units, int decimalPlaces)
 {
     return($"{decimal.Round(valueFunc()*GetMultipler(units), decimalPlaces):0.00} {GetUnitString(units)}");
 }
Example #6
0
 private static string ValueAsString(Func <decimal> valueFunc, MemoryUnits units, int decimalPlaces)
 {
     return(string.Format("{0:0.00} {1}", decimal.Round(valueFunc() * GetMultipler(units), decimalPlaces), GetUnitString(units)));
 }
Example #7
0
 /// <summary>
 /// Конструктор
 /// </summary>
 /// <param name="sizeValue">Размер</param>
 /// <param name="sizeUnit">Единица измерения</param>
 public UserFriendlyFileSize(double sizeValue, MemoryUnits sizeUnit)
 {
     this      = new UserFriendlyFileSize();
     SizeValue = sizeValue;
     SizeUnit  = sizeUnit;
 }