Exemplo n.º 1
0
        /// <summary>
        /// Add one level to current path.
        /// </summary>
        /// <param name="name"></param>
        /// <returns></returns>
        public PowerPath AddLevel(string name)
        {
            ArgumentContract.NotNull(name);
            ArgumentContract.ValidateFileName(name);

            _dirLevels.Add(name);
            return(this);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Rename file to new name using specified pattern.
        /// </summary>
        /// <param name="pattern"></param>
        /// <param name="values"></param>
        /// <param name="autoStripChars"></param>
        /// <returns></returns>
        public PowerPath RenameFileByPattern(string pattern, object values, bool autoStripChars = true)
        {
            ArgumentContract.NotNull(pattern);
            ArgumentContract.NotNull(values);

            _filename = InternalPatternRename(pattern, values, autoStripChars);
            return(this);
        }
Exemplo n.º 3
0
        /// <summary>
        /// Rename last directory name to new name using specified pattern.
        /// </summary>
        /// <param name="pattern"></param>
        /// <param name="values"></param>
        /// <returns></returns>
        public PowerPath RenameLastDirectoryByPattern(string pattern, object values)
        {
            ArgumentContract.NotNull(pattern);
            ArgumentContract.NotNull(values);

            _dirLevels[_dirLevels.Count - 1] = InternalPatternRename(pattern, values, true);
            return(this);
        }
Exemplo n.º 4
0
        /// <summary>
        /// Rename last directroy name to new name.
        /// </summary>
        /// <param name="toName"></param>
        /// <returns></returns>
        public PowerPath RenameLastDirectory(string toName)
        {
            ArgumentContract.NotNull(toName);
            ArgumentContract.ValidateFileName(toName);

            _dirLevels[_dirLevels.Count - 1] = toName;
            return(this);
        }
Exemplo n.º 5
0
        /// <summary>
        /// Rename file to new name.
        /// </summary>
        /// <param name="toName"></param>
        /// <returns></returns>
        public PowerPath RenameFile(string toName)
        {
            ArgumentContract.NotNull(toName);
            ArgumentContract.ValidateFileName(toName);

            if (_filename != null)
            {
                _filename = toName;
            }
            return(this);
        }
Exemplo n.º 6
0
        /// <summary>
        /// Swaps the file name from beginning to end of file name.
        /// </summary>
        /// <param name="startsWith"></param>
        /// <returns></returns>
        public PowerPath SwapFileName(string startsWith)
        {
            ArgumentContract.NotNull(startsWith);
            var result = InternalSwapName(_filename, startsWith);

            if (result != null)
            {
                _filename = result;
            }

            return(this);
        }
Exemplo n.º 7
0
        /// <summary>
        /// Swaps the directory name from beginning to end of directory name.
        /// </summary>
        /// <param name="startsWith"></param>
        /// <returns></returns>
        public PowerPath SwapLastDirectoryName(string startsWith)
        {
            ArgumentContract.NotNull(startsWith);
            var dirName = GetLastDirectoryName();
            var result  = InternalSwapName(dirName, startsWith);

            if (result != null)
            {
                RenameLastDirectory(result);
            }

            return(this);
        }
Exemplo n.º 8
0
        /// <summary>
        /// Change current file extension to new extension.
        /// </summary>
        /// <param name="toExtension"></param>
        /// <returns></returns>
        public PowerPath ChangeExtension(string toExtension)
        {
            ArgumentContract.NotNull(toExtension);

            if (_extension == null)
            {
                return(this);
            }
            if (!toExtension.StartsWith("."))
            {
                toExtension = "." + toExtension;
            }
            _extension = toExtension;
            return(this);
        }
Exemplo n.º 9
0
        /// <summary>
        /// Sets current path root.
        /// </summary>
        /// <param name="root"></param>
        /// <returns></returns>
        public PowerPath SetPathRoot(string root)
        {
            ArgumentContract.NotNull(root);
            ArgumentContract.IsLength(root, 2);
            if (!root.EndsWith(":"))
            {
                throw new ArgumentException("Path root doesn't ends with semicolon.");
            }
            if (char.IsLetter(root[0]))
            {
                throw new ArgumentException("Path root doesn't starts with letter.");
            }

            _root = root;
            return(this);
        }
Exemplo n.º 10
0
        public async Task IntegrationTestApiServiceCreateWorkflowWithArguments()
        {
            using (var client = new HttpClient())
            {
                var workflowId      = Guid.NewGuid();
                var requestContract = new CreateWorkflowRequestContract <UpdateArgumentWorkflow>(
                    ArgumentContract.Create("TestArg", "Initial message"),
                    ArgumentContract.Create("SleepTime", 1000))
                {
                    WorkflowId = workflowId
                };

                var url      = "Workflow/Create".ToApiUrl(BaseApiAddress);
                var response = await client.PostAsync(url, requestContract.AsJsonContent());

                var responseString = await response.Content.ReadAsStringAsync();

                Assert.IsTrue(response.IsSuccessStatusCode);

                var contract = JsonHelper.Deserialize <CreateWorkflowResponseContract>(responseString);
                Assert.AreEqual(workflowId, contract.WorkflowId);

                // try getting workflow until it's complete
                var getUrl = "Workflow".ToApiUrl(BaseApiAddress, new KeyValuePair <string, object>("id", workflowId));

                GetWorkflowResponseContract getContract;
                var triesLeft = 100;
                do
                {
                    await Task.Delay(250);

                    var getResponse = await client.GetAsync(getUrl);

                    var getResponseString = await getResponse.Content.ReadAsStringAsync();

                    getContract = JsonHelper.Deserialize <GetWorkflowResponseContract>(getResponseString);
                }while (--triesLeft > 0 && !getContract.IsComplete);

                Assert.IsTrue(triesLeft > 0);
                Assert.AreEqual("Initial message", getContract.GetArgument <string>("OriginalArg"));
                Assert.AreEqual("Updated argument", getContract.GetArgument <string>("TestArg"));
            }
        }
Exemplo n.º 11
0
        public async Task IntegrationTestApiServiceWorkflowClientCreateAndAction()
        {
            using (var client = new WorkflowClient(BaseApiAddress))
            {
                var createRequest =
                    new CreateWorkflowRequestContract <PhoneCallWorkflow>(ArgumentContract.Create("CanDial", true));

                var createResponse = await client.CreateAsync(createRequest);

                var workflowId = createResponse.WorkflowId;

                await client.ActionAsync(new ActionWorkflowRequestContract(workflowId, "Call Dialed"));

                await client.ActionAsync(new ActionWorkflowRequestContract(workflowId, "No Answer"));

                var waitResponse = await client.WaitAsync(workflowId);

                Assert.AreEqual(
                    PhoneStates.Disconnected,
                    TypeHelper.ChangeType <PhoneStates>(waitResponse.WorkflowState));
                Assert.AreEqual("Hello World!", waitResponse.GetArgument <string>("Message"));
            }
        }
Exemplo n.º 12
0
        public PowerPath(string basePath, bool isFile)
        {
            ArgumentContract.NotNull(basePath);
            ArgumentContract.ValidatePathName(basePath);

            _dirLevels = new List <string>();
            _root      = Path.GetPathRoot(basePath);
            if (isFile)
            {
                _filename  = Path.GetFileNameWithoutExtension(basePath);
                _extension = Path.GetExtension(basePath);
            }

            var levels = basePath.Split(Path.DirectorySeparatorChar);

            for (int i = 1; i < levels.Length; i++)
            {
                if (i == levels.Length - 1 && isFile)
                {
                    continue;
                }
                _dirLevels.Add(levels[i]);
            }
        }