Exemplo n.º 1
0
        public void Write(string sourceFileName, byte[] data)
        {
            var sm = new SubstMacros();

            sm.SetMacro("FILENAME", Path.GetFileName(sourceFileName));

            string dstFolder   = (_fileRecordProtect == EpsTaskProtect.FOLDER) ? _supportTargetFolder : _targetFolder;
            string dstFileName = (_fileRecordProtect == EpsTaskProtect.EXT) ? sm.Substitute(_supportFileName) : Path.GetFileName(sourceFileName);
            string dstFile     = Path.Combine(dstFolder, dstFileName);

            CreateFile(dstFile, data);

            if (_fileRecordProtect == EpsTaskProtect.CRC)
            {
                var    hc          = new HashCode();
                string strHashCode = hc.GetMD5(dstFile);
                CreateFile(Path.Combine(_targetFolder, sm.Substitute(_supportFileName)), new[] { strHashCode });
            }

            if (_fileRecordProtect == EpsTaskProtect.EXT || _fileRecordProtect == EpsTaskProtect.FOLDER)
            {
                string newFileName = Path.Combine(_targetFolder, Path.GetFileName(sourceFileName));
                DeleteFileIfExists(newFileName);
                MoveFile(dstFile, newFileName);
            }

            if (_deleteSrcFile)
            {
                DeleteFileIfExists(sourceFileName);
            }
        }
Exemplo n.º 2
0
        public void Write(string sourceFileName, byte[] data)
        {
            var sm = new SubstMacros();

            sm.SetMacro("FILENAME", sourceFileName);

            string dstFolder   = (_fileRecordProtect == EpsTaskProtect.FOLDER) ? _supportTargetFolder : _targetFolder;
            string dstFileName = (_fileRecordProtect == EpsTaskProtect.EXT) ? sm.Substitute(_supportFileName) : Path.GetFileName(sourceFileName);
            string dstFile     = String.Format("{0}/{1}", dstFolder, dstFileName);

            // Проверка наличия директории и ее создание, если ее нет
            if (!IsDirectoryExists(dstFolder))
            {
                CreateDirectory(dstFolder);
            }

            // Проверка существования файла и его удаление
            if (IsFileExists(dstFile))
            {
                DeleteFile(dstFile);
            }

            // Запись файла или временного файла
            UploadFile(dstFile, data);

            // Перемещение временного файла
            if (_fileRecordProtect == EpsTaskProtect.FOLDER)
            {
                if (!IsDirectoryExists(_targetFolder))
                {
                    CreateDirectory(_targetFolder);
                }
                MoveFile(dstFile, String.Format("{0}/{1}", _targetFolder, Path.GetFileName(sourceFileName)));
            }

            // Переименование временного файла
            if (_fileRecordProtect == EpsTaskProtect.EXT)
            {
                RenameFile(dstFile, sourceFileName);
            }

            // Создание файла - спутника
            if (_fileRecordProtect == EpsTaskProtect.CRC)
            {
                UploadFile(string.Format("{0}/{1}", dstFolder, sm.Substitute(_supportFileName)),
                           Encoding.Default.GetBytes(new HashCode().GetMD5(data)));
            }
        }
Exemplo n.º 3
0
        public void AddParameter(string name, object value, object subvalue)
        {
            var p = name.To(EpsTaskParams.None);

            if (p == EpsTaskParams.None)
            {
                throw new DeveloperException(string.Format("Undefined EpsTaskParams '{0}' in EpsOtcBase.AddParameter.", name));
            }
            var param = new ParamMap {
                Name = p, Subvalue = subvalue
            };

            value = value ?? ParamMap.NullValue;
            //param.value = value;
            // Коллеги, пожалуйста, делайте подстановку макросов непосредственно перед употреблением переменной. При загрузке
            // конфигурационного файла некоторые макросы будут не определены.
            param.Value = Sb.Substitute(value.ToString());
            Params.Add(param);
            Sb.SetMacro(name, value.ToString());
        }