Пример #1
0
        /// <summary>
        /// Инициализирует текущий экземпляр информации о патче посредством разбора переданного форматированного текста.
        /// </summary>
        /// <param name="patchList">
        /// Форматированный текст, представляющий из себя
        /// список информации о файлах для обновления</param>
        /// <exception cref="ArgumentNullException">Генерирует, если один из переданных параметров равен null</exception>
        public PatchInfo(string patchList)
        {
            if (patchList == null)
            {
                throw new ArgumentNullException("patchList");
            }

            string[]     formattedLines = patchList.Split(new[] { '\n', '\r' }, StringSplitOptions.RemoveEmptyEntries).ToArray();
            UpdateFile[] updateFiles    = new UpdateFile[formattedLines.Length];

            long sumOfLenght = 0L;

            for (int i = 0; i < formattedLines.Length; i++)
            {
                UpdateFile updateFile = UpdateFile.FromString(formattedLines[i]);
                updateFiles[i] = updateFile;
                sumOfLenght   += updateFile.FileSize;
            }
            PatchLength = sumOfLenght;

            UpdateFiles = updateFiles;
        }