Example #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;
            }
        }
Example #2
0
        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;
            }
        }
Example #3
0
        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);
        }
Example #4
0
        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);
            }
        }
Example #5
0
 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);
     }
 }
Example #6
0
 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));
     }
 }
Example #7
0
        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);
        }
Example #9
0
        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();
            }
        }
Example #11
0
        static byte[] GetBytesFromBase64String(IDev2PutRawOperationTO args)
        {
            var data = Convert.FromBase64String(args.FileContents.Replace(@"Content-Type:BASE64", @""));

            return(data);
        }
Example #12
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);
        }
Example #13
0
 public string PutRaw(IActivityIOOperationsEndPoint dst, IDev2PutRawOperationTO args)
 {
     Destination           = dst;
     Dev2PutRawOperationTo = args;
     return("Successful");
 }