/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
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")); } }
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")); } }
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]); } }