Пример #1
0
        public void CopyOrMove(DirectoryOperationsShared.ActionType action,
                               string sourceDirectoryPath,
                               string targetDirectoryPath,
                               DirectoryOperationsShared.ExistsOption existsOption,
                               bool replaceExistingFile)
        {
            if (string.IsNullOrEmpty(sourceDirectoryPath))
            {
                throw new Exception("Source directory path cannot be null or empty.");
            }

            if (string.IsNullOrEmpty(targetDirectoryPath))
            {
                throw new Exception("Target directory path cannot be null or empty.");
            }

            if (!Directory.Exists(sourceDirectoryPath))
            {
                throw new DirectoryNotFoundException(string.Format("Source directory [{0}] does not exist.", sourceDirectoryPath));
            }

            sourceDirectoryPath = sourceDirectoryPath.TrimEnd('\\');
            targetDirectoryPath = targetDirectoryPath.TrimEnd('\\');

            PerformAction((action == DirectoryOperationsShared.ActionType.Copy), sourceDirectoryPath, targetDirectoryPath, existsOption, replaceExistingFile);
        }
Пример #2
0
        public override void GenerateCode(Plugin.Common.CodeGeneration.IFunctionBuilder functionBuilder)
        {
            functionBuilder.AddCode(
                string.Format(@"var executor = new Twenty57.Linx.Components.File.V1.DirectoryOperationsX();
				executor.LogEvent += message => {0}.Log(message);"                , functionBuilder.ContextParamName));

            DirectoryOperationsShared.ActionType actionType = FunctionData.Properties[DirectoryOperationsShared.ActionPropertyName].GetValue <DirectoryOperationsShared.ActionType>();
            switch (actionType)
            {
            case DirectoryOperationsShared.ActionType.DirectoryExists:
                functionBuilder.AddCode(string.Format("return executor.DirectoryExists({0});",
                                                      functionBuilder.GetParamName(DirectoryOperationsShared.DirectoryPropertyName)));
                break;

            case DirectoryOperationsShared.ActionType.Create:
                functionBuilder.AddCode(string.Format("return executor.CreateDirectory({0}, {1});",
                                                      functionBuilder.GetParamName(DirectoryOperationsShared.DirectoryPropertyName),
                                                      CSharpUtilities.EnumAsString(FunctionData.Properties[DirectoryOperationsShared.CreateDirectoryExistsPropertyName].GetValue <DirectoryOperationsShared.CreateExistsOption>())));
                break;

            case DirectoryOperationsShared.ActionType.Delete:
                functionBuilder.AddCode(string.Format("executor.DeleteDirectory({0});",
                                                      functionBuilder.GetParamName(DirectoryOperationsShared.DirectoryPropertyName)));
                break;

            case DirectoryOperationsShared.ActionType.Copy:
            case DirectoryOperationsShared.ActionType.Move:
                functionBuilder.AddCode(string.Format(@"executor.CopyOrMove({0}, {1}, {2}, {3}, {4});",
                                                      CSharpUtilities.EnumAsString(actionType),
                                                      functionBuilder.GetParamName(DirectoryOperationsShared.SourceDirectoryPropertyName),
                                                      functionBuilder.GetParamName(DirectoryOperationsShared.TargetDirectoryPropertyName),
                                                      CSharpUtilities.EnumAsString(FunctionData.Properties[DirectoryOperationsShared.DirectoryExistsPropertyName].GetValue <DirectoryOperationsShared.ExistsOption>()),
                                                      CSharpUtilities.BoolAsString(FunctionData.Properties[DirectoryOperationsShared.ReplaceExistingFilePropertyName].GetValue <bool>())));
                break;

            default:
                throw new Exception(string.Format("Invalid action type [{0}] specified.", actionType));
            }

            functionBuilder.AddAssemblyReference(typeof(DirectoryOperations));
        }