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; } }
public 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); } return; case WriteType.AppendTop: using (var s = dst.Get(dst.IOPath, _filesToDelete)) { _fileWrapper.WriteAllText(tmp, args.FileContents); using (var temp = new FileStream(tmp, FileMode.Append)) { s.CopyTo(temp); } } return; default: _fileWrapper.AppendAllText(tmp, args.FileContents); return; } }
string WriteToRemoteTempStorage(IActivityIOOperationsEndPoint dst, IDev2PutRawOperationTO args, string result, string tmp) { switch (args.WriteType) { case WriteType.AppendBottom: var fileContent = Encoding.ASCII.GetBytes(args.FileContents); var putResult = PerformPut(fileContent, dst, false); result = putResult ? ResultOk : ResultBad; 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); } break; case WriteType.Overwrite: default: var res = WriteDataToFile(args, dst); result = res ? ResultOk : ResultBad; break; } return(result); }
public string WriteToRemoteTempStorage(IActivityIOOperationsEndPoint dst, IDev2PutRawOperationTO args, string tmp) { switch (args.WriteType) { case WriteType.AppendBottom: var fileContent = Encoding.ASCII.GetBytes(args.FileContents); var putResult = PerformPut(fileContent, dst, false); return(putResult ? ResultOk : ResultBad); case WriteType.AppendTop: using (var s = dst.Get(dst.IOPath, _filesToDelete)) { _fileWrapper.WriteAllText(tmp, args.FileContents); using (var temp = new FileStream(tmp, FileMode.Append)) { s.CopyTo(temp); } return(MoveTmpFileToDestination(dst, tmp)); } default: var res = WriteDataToFile(args, dst); return(res ? ResultOk : ResultBad); } }
private void WriteDataToFile(IDev2PutRawOperationTO args, string path) { if (IsBase64(args.FileContents)) { var data = GetBytesFromBase64String(args); _fileWrapper.WriteAllBytes(path, data); } else { _fileWrapper.WriteAllText(path, args.FileContents); } }
bool WriteDataToFile(IDev2PutRawOperationTO args, IActivityIOOperationsEndPoint dst) { if (IsBase64(args.FileContents)) { var data = GetBytesFromBase64String(args); return(PerformPut(data, dst, true)); } else { var fileContent = Encoding.ASCII.GetBytes(args.FileContents); return(PerformPut(fileContent, dst, true)); } }
public bool WriteDataToFile(IDev2PutRawOperationTO args, IActivityIOOperationsEndPoint dst) { var isBase64 = args.FileContents.StartsWith(@"Content-Type:BASE64", StringComparison.InvariantCulture) || args.FileContentsAsBase64; if (isBase64) { var data = GetBytesFromBase64String(args); return(PerformPut(data, dst, true)); } var fileContent = Encoding.ASCII.GetBytes(args.FileContents); return(PerformPut(fileContent, dst, true)); }
private string CreateEndPointAndWriteData(IActivityIOOperationsEndPoint dst, IDev2PutRawOperationTO args) { var newArgs = new Dev2CRUDOperationTO(true); var endPointCreated = _implementation.CreateEndPoint(dst, newArgs, true) == ActivityIOBrokerBaseDriver.ResultOk; if (endPointCreated) { return(_implementation.WriteDataToFile(args, dst) ? ActivityIOBrokerBaseDriver.ResultOk : ActivityIOBrokerBaseDriver.ResultBad); } return(ActivityIOBrokerBaseDriver.ResultBad); }
public string PutRaw(IActivityIOOperationsEndPoint dst, IDev2PutRawOperationTO args) { var result = ResultOk; try { FileLock.EnterWriteLock(); if (dst.RequiresLocalTmpStorage()) { var tmp = CreateTmpFile(); WriteToLocalTempStorage(dst, args, tmp); result = MoveTmpFileToDestination(dst, tmp, result); } else { if (dst.PathExist(dst.IOPath)) { var tmp = CreateTmpFile(); result = WriteToRemoteTempStorage(dst, args, result, tmp); RemoveTmpFile(tmp); } else { var newArgs = new Dev2CRUDOperationTO(true); CreateEndPoint(dst, newArgs, true); WriteDataToFile(args, dst); } } } finally { FileLock.ExitWriteLock(); for (var index = _filesToDelete.Count - 1; index > 0; index--) { var name = _filesToDelete[index]; RemoveTmpFile(name); } } return(result); }
public string PutRaw(IActivityIOOperationsEndPoint dst, IDev2PutRawOperationTO args) { string tmpFileName = null; try { FileLock.EnterWriteLock(); if (dst.RequiresLocalTmpStorage()) { var tmp = _implementation.CreateTmpFile(); _implementation.WriteToLocalTempStorage(dst, args, tmp); return(_implementation.MoveTmpFileToDestination(dst, tmp)); } else { if (dst.PathExist(dst.IOPath)) { tmpFileName = _implementation.CreateTmpFile(); return(_implementation.WriteToRemoteTempStorage(dst, args, tmpFileName)); } else { return(CreateEndPointAndWriteData(dst, args)); } } } finally { if (tmpFileName != null) { _implementation.RemoveTmpFile(tmpFileName); } FileLock.ExitWriteLock(); RemoveAllTmpFiles(); } }
static byte[] GetBytesFromBase64String(IDev2PutRawOperationTO args) { var data = Convert.FromBase64String(args.FileContents.Replace(@"Content-Type:BASE64", @"")); return(data); }
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); }
public string PutRaw(IActivityIOOperationsEndPoint dst, IDev2PutRawOperationTO args) { Destination = dst; Dev2PutRawOperationTo = args; return("Successful"); }