Esempio n. 1
0
        void WriteToLocalTempStorage(IActivityIOOperationsEndPoint dst, IDev2PutRawOperationTO args, string tmp)
        {
            switch (args.WriteType)
            {
            case WriteType.AppendBottom:
                using (var s = dst.Get(dst.IOPath, _filesToDelete))
                {
                    _fileWrapper.WriteAllBytes(tmp, s.ToByteArray());
                    _fileWrapper.AppendAllText(tmp, args.FileContents);
                }
                break;

            case WriteType.AppendTop:
                using (var s = dst.Get(dst.IOPath, _filesToDelete))
                {
                    _fileWrapper.WriteAllText(tmp, args.FileContents);
                    _common.AppendToTemp(s, tmp);
                }
                break;

            default:
                _fileWrapper.AppendAllText(tmp, args.FileContents);
                break;
            }
        }
Esempio n. 2
0
        public void Write(string file, string s, string header)
        {
            var path = Path.Combine(_outputDir, file);
            var csv  = path + ".csv";
            var tmp  = path + ".tmp";

            if (_file.Exists(tmp))
            {
                try
                {
                    _file.AppendAllText(csv, _file.ReadAllText(tmp));
                    _file.Delete(tmp);
                }
                catch (IOException)
                {
                }
            }
            if (!_file.Exists(csv))
            {
                s = header + "\r\n" + s;
            }
            foreach (var f in new[] { csv, tmp })
            {
                try
                {
                    _file.AppendAllText(f, s + "\r\n");
                    break;
                }
                catch (IOException e)
                {
                    if (f == tmp)
                    {
                        throw new LogIOException("報告書の出力中にエラーが発生しました。", e);
                    }
                }
            }
        }
Esempio n. 3
0
        public string PutRaw(IActivityIOOperationsEndPoint dst, IDev2PutRawOperationTO args)
        {
            var result = ResultOk;

            try
            {
                FileLock.EnterWriteLock();
                if (dst.RequiresLocalTmpStorage())
                {
                    var tmp = CreateTmpFile();
                    switch (args.WriteType)
                    {
                    case WriteType.AppendBottom:
                        using (var s = dst.Get(dst.IOPath, _filesToDelete))
                        {
                            _fileWrapper.WriteAllBytes(tmp, s.ToByteArray());
                            _fileWrapper.AppendAllText(tmp, args.FileContents);
                        }
                        break;

                    case WriteType.AppendTop:
                        using (var s = dst.Get(dst.IOPath, _filesToDelete))
                        {
                            _fileWrapper.WriteAllText(tmp, args.FileContents);
                            _common.AppendToTemp(s, tmp);
                        }
                        break;

                    default:
                        WriteDataToFile(args, tmp);
                        break;
                    }
                    result = MoveTmpFileToDestination(dst, tmp, result);
                }
                else
                {
                    if (_fileWrapper.Exists(dst.IOPath.Path))
                    {
                        var tmp = CreateTmpFile();
                        switch (args.WriteType)
                        {
                        case WriteType.AppendBottom:
                            _fileWrapper.AppendAllText(dst.IOPath.Path, args.FileContents);
                            result = ResultOk;
                            break;

                        case WriteType.AppendTop:
                            using (var s = dst.Get(dst.IOPath, _filesToDelete))
                            {
                                _fileWrapper.WriteAllText(tmp, args.FileContents);
                                _common.AppendToTemp(s, tmp);
                                result = MoveTmpFileToDestination(dst, tmp, result);
                                RemoveTmpFile(tmp);
                            }
                            break;

                        default:
                            WriteDataToFile(args, tmp);
                            result = MoveTmpFileToDestination(dst, tmp, result);
                            RemoveTmpFile(tmp);
                            break;
                        }
                    }
                    else
                    {
                        Dev2CRUDOperationTO newArgs = new Dev2CRUDOperationTO(true);
                        CreateEndPoint(dst, newArgs, true);
                        var path = dst.IOPath.Path;
                        WriteDataToFile(args, path);
                    }
                }
            }
            finally
            {
                FileLock.ExitWriteLock();
                for (var index = _filesToDelete.Count - 1; index > 0; index--)
                {
                    var name = _filesToDelete[index];
                    RemoveTmpFile(name);
                }
            }
            return(result);
        }