Пример #1
0
        public static string GetAutoSizeString(object source, DataSizeType soucetype = DataSizeType.B)
        {
            string       s    = source.ToString();
            decimal      d    = Convert.ToDecimal(source);
            DataSizeType type = soucetype;

            while (d > 1000m && type != DataSizeType.T)
            {
                type = UpgradeSizeType(type);
                d    = GetSizeString(source, soucetype, type);
            }
            s = d.ToString("f2") + type.ToString();
            return(s);
        }
Пример #2
0
        private static DataSizeType UpgradeSizeType(DataSizeType type)
        {
            switch (type)
            {
            case DataSizeType.b:
                return(DataSizeType.B);

            case DataSizeType.B:
                return(DataSizeType.K);

            case DataSizeType.K:
                return(DataSizeType.M);

            case DataSizeType.M:
                return(DataSizeType.G);

            case DataSizeType.G:
                return(DataSizeType.T);

            default:
                return(DataSizeType.T);
            }
        }
Пример #3
0
        private static DataSizeType DegradingSizeType(DataSizeType type)
        {
            switch (type)
            {
            case DataSizeType.T:
                return(DataSizeType.G);

            case DataSizeType.G:
                return(DataSizeType.M);

            case DataSizeType.M:
                return(DataSizeType.K);

            case DataSizeType.K:
                return(DataSizeType.B);

            case DataSizeType.B:
                return(DataSizeType.b);

            default:
                return(DataSizeType.b);
            }
        }
Пример #4
0
        public static decimal GetSizeString(object source, DataSizeType sourceType, DataSizeType targetType)
        {
            //string s = string.Empty;
            decimal sv = Convert.ToDecimal(source);
            decimal st = 0;

            switch (sourceType)
            {
            case DataSizeType.b:
                switch (targetType)
                {
                case DataSizeType.b:
                    st = sv;
                    break;

                case DataSizeType.B:
                    st = sv / SizeBase;
                    break;

                case DataSizeType.K:
                    st = sv / SizeBase2;
                    break;

                case DataSizeType.M:
                    st = sv / SizeBase3;
                    break;

                case DataSizeType.G:
                    st = sv / SizeBase4;
                    break;

                case DataSizeType.T:
                    st = sv / SizeBase5;
                    break;
                }
                break;

            case DataSizeType.B:
                switch (targetType)
                {
                case DataSizeType.b:
                    st = sv * SizeBase;
                    break;

                case DataSizeType.B:
                    st = sv;
                    break;

                case DataSizeType.K:
                    st = sv / SizeBase;
                    break;

                case DataSizeType.M:
                    st = sv / SizeBase2;
                    break;

                case DataSizeType.G:
                    st = sv / SizeBase3;
                    break;

                case DataSizeType.T:
                    st = sv / SizeBase4;
                    break;
                }
                break;

            case DataSizeType.K:
                switch (targetType)
                {
                case DataSizeType.b:
                    st = sv * SizeBase2;
                    break;

                case DataSizeType.B:
                    st = sv * SizeBase;
                    break;

                case DataSizeType.K:
                    st = sv;
                    break;

                case DataSizeType.M:
                    st = sv / SizeBase;
                    break;

                case DataSizeType.G:
                    st = sv / SizeBase2;
                    break;

                case DataSizeType.T:
                    st = sv / SizeBase3;
                    break;
                }
                break;

            case DataSizeType.M:
                switch (targetType)
                {
                case DataSizeType.b:
                    st = sv * SizeBase3;
                    break;

                case DataSizeType.B:
                    st = sv * SizeBase2;
                    break;

                case DataSizeType.K:
                    st = sv * SizeBase;
                    break;

                case DataSizeType.M:
                    st = sv;
                    break;

                case DataSizeType.G:
                    st = sv / SizeBase;
                    break;

                case DataSizeType.T:
                    st = sv / SizeBase2;
                    break;
                }
                break;

            case DataSizeType.G:
                switch (targetType)
                {
                case DataSizeType.b:
                    st = sv * SizeBase4;
                    break;

                case DataSizeType.B:
                    st = sv * SizeBase3;
                    break;

                case DataSizeType.K:
                    st = sv * SizeBase2;
                    break;

                case DataSizeType.M:
                    st = sv * SizeBase;
                    break;

                case DataSizeType.G:
                    st = sv;
                    break;

                case DataSizeType.T:
                    st = sv / SizeBase;
                    break;
                }
                break;

            case DataSizeType.T:
                switch (targetType)
                {
                case DataSizeType.b:
                    st = sv * SizeBase5;
                    break;

                case DataSizeType.B:
                    st = sv * SizeBase4;
                    break;

                case DataSizeType.K:
                    st = sv * SizeBase3;
                    break;

                case DataSizeType.M:
                    st = sv * SizeBase2;
                    break;

                case DataSizeType.G:
                    st = sv * SizeBase;
                    break;

                case DataSizeType.T:
                    st = sv;
                    break;
                }
                break;
            }
            //s = st.ToString();
            return(st);
        }
Пример #5
0
 /// <summary>
 /// Initializes a new instance of the <see cref="DataSize" /> class.
 /// </summary>
 /// <param name="sizeType">size type</param>
 /// <param name="size">data size</param>
 internal DataSize(DataSizeType sizeType, int?size)
 {
     this.Size     = size;
     this.SizeType = sizeType;
 }
Пример #6
0
 /// <summary>
 /// Initializes a new instance of the <see cref="DataType" /> class.
 /// </summary>
 /// <param name="name">type name</param>
 /// <param name="type">size type</param>
 /// <param name="size">data size</param>
 internal DataType(string name, DataSizeType type, int?size)
 {
     this.TypeName = name;
     this.DataSize = new DataSize(type, size);
 }
Пример #7
0
 /// <summary>
 /// Create data type instance
 /// </summary>
 /// <param name="name">data type name</param>
 /// <param name="type">size type</param>
 /// <param name="size">data size</param>
 /// <returns>data type instance</returns>
 internal static IDataType CreateDataType(string name, DataSizeType type, int?size = null)
 {
     return(new DataType(name, type, size));
 }
Пример #8
0
 /// <summary>
 /// Initializes a new instance of the <see cref="DataSize" /> class.
 /// </summary>
 /// <param name="type">data type</param>
 /// <param name="size">data size</param>
 internal DataSize(DataSizeType type, int?size)
 {
     this.dataSizeType = type;
     this.dataSize     = size;
 }