Пример #1
0
        /// <summary>
        /// Convert digital size To the byte.
        /// </summary>
        /// <param name="value">The value.</param>
        /// <param name="sizeSuffixes">The size suffixes.</param>
        /// <returns></returns>
        /// <createdOn>1/26/2016 11:19 AM</createdOn>
        /// <exception cref="System.ArgumentOutOfRangeException">null</exception>
        public static long ToByte(this long value, SizeSuffixes sizeSuffixes)
        {
            switch (sizeSuffixes)
            {
            case SizeSuffixes.Bytes:
                break;

            case SizeSuffixes.KB:
                value = value * 1024;
                break;

            case SizeSuffixes.MB:
                value = value * 1024 * 1024;
                break;

            case SizeSuffixes.GB:
                value = value * 1024 * 1024 * 1024;
                break;

            case SizeSuffixes.TB:
                value = value * 1024 * 1024 * 1024 * 1024;
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(sizeSuffixes), sizeSuffixes, null);
            }

            return(value);
        }
Пример #2
0
        /// <summary>
        /// Determines whether [is valid size] [the specified size].
        /// </summary>
        /// <param name="control">The control.</param>
        /// <param name="size">Target size to compare.</param>
        /// <param name="sizeSuffixes">The size suffixes of target size.</param>
        /// <returns></returns>
        /// <createdOn>1/26/2016 11:20 AM</createdOn>
        public static bool IsValidFileSize(this FileUpload control, long size, SizeSuffixes sizeSuffixes = SizeSuffixes.Bytes)
        {
            if (!control.HasFile || !control.HasFiles)
                throw new Exception("No file exsit in the file upload");

            //If file upload has multiple files
            if (control.AllowMultiple)
            {
                return !control.PostedFiles.Any(file => file.ContentLength > size.ToByte(sizeSuffixes));
            }

            //If files not has multiple files
            return control.FileContent.Length <= size.ToByte(sizeSuffixes);
        }
Пример #3
0
        public void CalculateConversions()
        {
            this.conversions = new List <KeyValuePair <string, double> >();

            int          nthSelectedUnitType = int.Parse(this.SelectedUnitType);
            SizeSuffixes selectedUnitType    = (SizeSuffixes)nthSelectedUnitType;

            this.conversions.Add(new KeyValuePair <string, double>(selectedUnitType.ToDescription(), this.SelectedAmount));

            double tempResult = this.SelectedAmount;
            int    len        = Enum.GetValues(typeof(SizeSuffixes)).Length;

            for (int i = nthSelectedUnitType + 1; i < len; i++)
            {
                if (this.SelectedKilo == 1000)
                {
                    tempResult *= i % 2 == 0 ?
                                  ConversionMultiplier.decimalYteToIt :
                                  ConversionMultiplier.decimalItToYte;
                }
                else if (this.SelectedKilo == 1024)
                {
                    tempResult *= i % 2 == 0 ?
                                  ConversionMultiplier.binaryYtetoIt :
                                  ConversionMultiplier.binaryItToYte;
                }

                this.conversions.Add(new KeyValuePair <string, double>(((SizeSuffixes)i).ToDescription(), tempResult));
            }

            tempResult = this.SelectedAmount;
            for (int i = nthSelectedUnitType - 1; i >= 0; i--)
            {
                if (this.SelectedKilo == 1000)
                {
                    tempResult /= i % 2 == 0 ?
                                  ConversionMultiplier.decimalItToYte :
                                  ConversionMultiplier.decimalYteToIt;
                }
                else if (this.SelectedKilo == 1024)
                {
                    tempResult /= i % 2 == 0 ?
                                  ConversionMultiplier.binaryItToYte :
                                  ConversionMultiplier.binaryYtetoIt;
                }

                this.conversions.Insert(0, new KeyValuePair <string, double>(((SizeSuffixes)i).ToDescription(), tempResult));
            }
        }
Пример #4
0
        /// <summary>
        /// Determines whether [is valid size] [the specified size].
        /// </summary>
        /// <param name="control">The control.</param>
        /// <param name="size">Target size to compare.</param>
        /// <param name="sizeSuffixes">The size suffixes of target size.</param>
        /// <returns></returns>
        /// <createdOn>1/26/2016 11:20 AM</createdOn>
        public static bool IsValidFileSize(this FileUpload control, long size, SizeSuffixes sizeSuffixes = SizeSuffixes.Bytes)
        {
            if (!control.HasFile || !control.HasFiles)
            {
                throw new Exception("No file exsit in the file upload");
            }

            //If file upload has multiple files
            if (control.AllowMultiple)
            {
                return(!control.PostedFiles.Any(file => file.ContentLength > size.ToByte(sizeSuffixes)));
            }

            //If files not has multiple files
            return(control.FileContent.Length <= size.ToByte(sizeSuffixes));
        }
Пример #5
0
        public static string GetSizeSuffix(this SizeSuffixes s, int value, int decimalPlaces = 1)
        {
            if (value < 0)
            {
                return("-" + s.GetSizeSuffix(-value));
            }

            if (value == 0)
            {
                return("0.0 bytes");
            }

            int mag = (int)Math.Log(value, 1024);

            decimal adjustedSize = value / (1L << (mag * 10));

            if (Math.Round(adjustedSize, decimalPlaces) >= 1000)
            {
                mag          += 1;
                adjustedSize /= 1024;
            }
            return(string.Format("{0:n" + decimalPlaces + "} {1}", adjustedSize, SizeSuffixes.Suffixes[mag]));
        }
Пример #6
0
        /// <summary>
        /// Convert digital size To the byte.
        /// </summary>
        /// <param name="value">The value.</param>
        /// <param name="sizeSuffixes">The size suffixes.</param>
        /// <returns></returns>
        /// <createdOn>1/26/2016 11:19 AM</createdOn>
        /// <exception cref="System.ArgumentOutOfRangeException">null</exception>
        public static long ToByte(this long value, SizeSuffixes sizeSuffixes)
        {
            switch (sizeSuffixes)
            {
                case SizeSuffixes.Bytes:
                    break;
                case SizeSuffixes.KB:
                    value = value * 1024;
                    break;
                case SizeSuffixes.MB:
                    value = value * 1024 * 1024;
                    break;
                case SizeSuffixes.GB:
                    value = value * 1024 * 1024 * 1024;
                    break;
                case SizeSuffixes.TB:
                    value = value * 1024 * 1024 * 1024 * 1024;
                    break;
                default:
                    throw new ArgumentOutOfRangeException(nameof(sizeSuffixes), sizeSuffixes, null);
            }

            return value;
        }