public async void When_RequestIsSuccessfull_Should_ReturnStatusCode200() { var client = new WebDavClient().SetWebDavDispatcher(Dispatcher.Mock()); var response1 = await client.Move("http://example.com/old", "http://example.com/new"); var response2 = await client.Move(new Uri("http://example.com/old"), new Uri("http://example.com/new")); var response3 = await client.Move("http://example.com/old", "http://example.com/new", new MoveParameters()); var response4 = await client.Move(new Uri("http://example.com/old"), new Uri("http://example.com/new"), new MoveParameters()); Assert.Equal(200, response1.StatusCode); Assert.Equal(200, response2.StatusCode); Assert.Equal(200, response3.StatusCode); Assert.Equal(200, response4.StatusCode); }
public async void When_RequestIsFailed_Should_ReturnStatusCode500() { var client = new WebDavClient().SetWebDavDispatcher(Dispatcher.MockFaulted()); var response = await client.Move("http://example.com/old", "http://example.com/new"); Assert.Equal(500, response.StatusCode); }
public async void When_RequestIsSuccessfull_Should_ReturnStatusCode200() { var client = new WebDavClient().SetWebDavDispatcher(Dispatcher.Mock()); var response1 = await client.Move("http://example.com/old", "http://example.com/new"); var response2 = await client.Move(new Uri("http://example.com/old"), new Uri("http://example.com/new")); var response3 = await client.Move("http://example.com/old", "http://example.com/new", new MoveParameters()); var response4 = await client.Move(new Uri("http://example.com/old"), new Uri("http://example.com/new"), new MoveParameters()); Assert.Equal(200, response1.StatusCode); Assert.Equal(200, response2.StatusCode); Assert.Equal(200, response3.StatusCode); Assert.Equal(200, response4.StatusCode); }
public async void When_IsCalledWithOverwriteOn_Should_SendOverwriteHeaderEqualsT() { var sourceUri = new Uri("http://example.com/old"); var dispatcher = Dispatcher.Mock(); var client = new WebDavClient().SetWebDavDispatcher(dispatcher); await client.Move(sourceUri, new Uri("http://example.com/new"), new MoveParameters { Overwrite = true }); await dispatcher.Received(1) .Send(sourceUri, WebDavMethod.Move, Arg.Is(Predicates.CompareHeader("Overwrite", "T")), CancellationToken.None); }
public async void When_IsCalled_Should_SendDestinationHeader() { var sourceUri = new Uri("http://example.com/old"); var dispatcher = Dispatcher.Mock(); var client = new WebDavClient().SetWebDavDispatcher(dispatcher); await client.Move(sourceUri, new Uri("http://example.com/new")); await dispatcher.Received(1) .Send(sourceUri, WebDavMethod.Move, Arg.Is(Predicates.CompareHeader("Destination", "http://example.com/new")), CancellationToken.None); }
public async void When_IsCalled_Should_SendMoveRequest() { var sourceUri = new Uri("http://example.com/old"); var dispatcher = Dispatcher.Mock(); var client = new WebDavClient().SetWebDavDispatcher(dispatcher); await client.Move(sourceUri, new Uri("http://example.com/new")); await dispatcher.Received(1) .Send(sourceUri, WebDavMethod.Move, Arg.Is(CheckMoveRequestParameters()), CancellationToken.None); }
public async void When_IsCalledWithSourceLockToken_Should_SetIfHeader() { var sourceUri = new Uri("http://example.com/old"); var dispatcher = Dispatcher.Mock(); var client = new WebDavClient().SetWebDavDispatcher(dispatcher); await client.Move(sourceUri, new Uri("http://example.com/new"), new MoveParameters { SourceLockToken = "urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6" }); await dispatcher.Received(1) .Send(sourceUri, WebDavMethod.Move, Arg.Is(Predicates.CompareHeader("If", "(<urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6>)")), CancellationToken.None); }
public async void When_IsCalledWithCancellationToken_Should_SendRequestWithIt() { var cts = new CancellationTokenSource(); var dispatcher = Dispatcher.Mock(); var client = new WebDavClient().SetWebDavDispatcher(dispatcher); await client.Move("http://example.com/old", "http://example.com/new", new MoveParameters { CancellationToken = cts.Token }); await dispatcher.Received(1) .Send(Arg.Any <Uri>(), WebDavMethod.Move, Arg.Is(CheckMoveRequestParameters()), cts.Token); }
public async void When_IsCalled_Should_SendMoveRequest() { var sourceUri = new Uri("http://example.com/old"); var dispatcher = Dispatcher.Mock(); var client = new WebDavClient().SetWebDavDispatcher(dispatcher); await dispatcher.DidNotReceiveWithAnyArgs().Send(sourceUri, Arg.Any<HttpMethod>(), new RequestParameters(), CancellationToken.None); await client.Move(sourceUri, new Uri("http://example.com/new")); await dispatcher.Received(1) .Send(sourceUri, WebDavMethod.Move, Arg.Is(CheckMoveRequestParameters()), CancellationToken.None); }
public async void When_IsCalledWithOverwriteOff_Should_SendOverwriteHeaderEqualsF() { var sourceUri = new Uri("http://example.com/old"); var dispatcher = Dispatcher.Mock(); var client = new WebDavClient().SetWebDavDispatcher(dispatcher); await dispatcher.DidNotReceiveWithAnyArgs().Send(sourceUri, Arg.Any<HttpMethod>(), new RequestParameters(), CancellationToken.None); await client.Move(sourceUri, new Uri("http://example.com/new"), new MoveParameters { Overwrite = false }); await dispatcher.Received(1) .Send(sourceUri, WebDavMethod.Move, Arg.Is(Predicates.CompareHeader("Overwrite", "F")), CancellationToken.None); }
public async void When_IsCalledWithDefaultParameters_Should_SendOverwriteHeaderEqualsT() { var sourceUri = new Uri("http://example.com/old"); var dispatcher = Dispatcher.Mock(); var client = new WebDavClient().SetWebDavDispatcher(dispatcher); await dispatcher.DidNotReceiveWithAnyArgs().Send(sourceUri, Arg.Any <HttpMethod>(), new RequestParameters(), CancellationToken.None); await client.Move(sourceUri, new Uri("http://example.com/new")); await dispatcher.Received(1) .Send(sourceUri, WebDavMethod.Move, Arg.Is(Predicates.CompareHeader("Overwrite", "T")), CancellationToken.None); }
public async void When_IsCalledWithDestLockToken_Should_SetIfHeader() { var sourceUri = new Uri("http://example.com/old"); var dispatcher = Dispatcher.Mock(); var client = new WebDavClient().SetWebDavDispatcher(dispatcher); await dispatcher.DidNotReceiveWithAnyArgs().Send(sourceUri, Arg.Any <HttpMethod>(), new RequestParameters(), CancellationToken.None); await client.Move(sourceUri, new Uri("http://example.com/new"), new MoveParameters { DestLockToken = "urn:uuid:e71d4fae-5dec-22d6-fea5-00a0c91e6be4" }); await dispatcher.Received(1) .Send(sourceUri, WebDavMethod.Move, Arg.Is(Predicates.CompareHeader("If", "(<urn:uuid:e71d4fae-5dec-22d6-fea5-00a0c91e6be4>)")), CancellationToken.None); }
public async Task Rename(DavItem item, string newName) { if (string.IsNullOrWhiteSpace(newName)) { return; } newName = Uri.EscapeDataString(newName); newName = newName.Replace("%28", "("); newName = newName.Replace("%29", ")"); newName = item.EntityId.TrimEnd('/').Substring(0, item.EntityId.TrimEnd('/').LastIndexOf('/') + 1) + newName; var client = new WebDavClient(new Uri(Configuration.ServerUrl, UriKind.RelativeOrAbsolute), Configuration.Credential); await client.Move(new Uri(item.EntityId, UriKind.RelativeOrAbsolute), new Uri(newName, UriKind.RelativeOrAbsolute)); }
private static async Task TestWebDav() { using (var webDavClient = new WebDavClient(new WebDavClientParams { BaseAddress = new Uri("http://mywebdav:88/") })) { await webDavClient.Copy("1.txt", "_2.txt"); await webDavClient.Move("http://mywebdav:88/_2.txt", "2.txt"); await webDavClient.Mkcol("http://mywebdav:88/mydir"); await webDavClient.PutFile("http://mywebdav:88/mydir/test.txt", File.OpenRead("test.txt"), "text/plain"); await webDavClient.Move("mydir/test.txt", "http://mywebdav:88/mydir/test_ren.txt"); await webDavClient.Copy("http://mywebdav:88/mydir/", "http://mywebdav:88/mydir1/"); await webDavClient.Copy("http://mywebdav:88/mydir/", "http://mywebdav:88/mydir2/", new CopyParameters { ApplyTo = ApplyTo.Copy.ResourceOnly }); using (var response = await webDavClient.GetRawFile("http://mywebdav:88/mydir/test_ren.txt")) using (var reader = new StreamReader(response.Stream)) { var fileOutput = await reader.ReadToEndAsync(); Console.WriteLine(fileOutput); } await TestPropfind(webDavClient); await TestSearch(webDavClient); await TestLock(webDavClient); await TestPropatch(webDavClient); await webDavClient.Delete("http://mywebdav:88/mydir"); } }
public async void When_IsCalledWithBothLockTokens_Should_SetIfHeaderWithBothTokens() { var sourceUri = new Uri("http://example.com/old"); var dispatcher = Dispatcher.Mock(); var client = new WebDavClient().SetWebDavDispatcher(dispatcher); await client.Move(sourceUri, new Uri("http://example.com/new"), new MoveParameters { SourceLockToken = "urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6", DestLockToken = "urn:uuid:e71d4fae-5dec-22d6-fea5-00a0c91e6be4" }); await dispatcher.Received(1) .Send(sourceUri, WebDavMethod.Move, Arg.Is(CheckIfHeader()), CancellationToken.None); }
/// <summary> /// Переименовать файл или папку на удаленом сервере /// </summary> /// <param name="oldPath">Полный путь к текущей папке</param> /// <param name="newPath">Полный путь к новой папке</param> public bool Rename(string oldPath, string newPath) { try { switch (typeSunc) { case TypeSunc.SFTP: { sftp.RenameFile(oldPath, newPath); break; } case TypeSunc.FTP: { ftp.Rename(oldPath, newPath); break; } case TypeSunc.WebDav: { var res = webDav.Move(oldPath, newPath).Result; if (!res.IsSuccessful) { report.Rename(oldPath, newPath, res); } break; } case TypeSunc.OneDrive: { oneDrive.Rename(oldPath, Path.GetFileName(newPath)).Wait(); break; } } return(true); } catch (Exception ex) { report.Rename(oldPath, newPath, ex.ToString()); return(false); } }
JsonResult IDriver.Paste(string source, string dest, IEnumerable <string> targets, bool isCut, IList <int> dublicateIndexes = null) { ReplaceResponse response = new ReplaceResponse(); string destDecrypted = this.DecodeTarget(this.GetCorectTarget(dest)); DirInfo destInfo = client.GetInfo(destDecrypted); int ind = 0; foreach (string target in targets) { WebDavRoot lroot = this.GetRoot(dest); string targetDecrypted = this.DecodeTarget(this.GetCorectTarget(target)); DirInfo targetInfo = client.GetInfo(targetDecrypted); if (targetInfo == null) { throw new ElFinderFileNotExists(); } if (isCut) { response.Removed.Add(this.GetCorectTarget(target)); client.Move(targetDecrypted, destDecrypted + targetInfo.DisplayName); targetInfo = client.GetInfo(destInfo.RelPath + targetInfo.DisplayName); response.Added.Add(DTOBase.Create(targetInfo, destInfo, lroot)); } else { string destinationFileName = dublicateIndexes != null && dublicateIndexes.Contains(ind) ? GetCorrectDestinationFileName(destInfo.RelPath + targetInfo.DisplayName) : destInfo.RelPath + targetInfo.DisplayName; client.Copy(targetDecrypted, destinationFileName); targetInfo = client.GetInfo(destinationFileName); DirInfo parent = this.GetParent(targetInfo); response.Added.Add(DTOBase.Create(targetInfo, parent, lroot)); } ind++; } return(Json(response)); }
/// <summary> /// Moves remote files and returns wheter the moving was successfull /// </summary> /// <param name="sourceUri"></param> /// <param name="dstUri"></param> /// <returns>The RemoteProperty of the new dstUri File or null if something went wrong</returns> public IRemoteProperty MoveFile(CancellationToken cancleToken, string sourceUri, string dstUri, bool overwrite) { string lockToken = _lockManager.LockResource(_webDavClient, dstUri, LockScope.Exclusive); string tempLockToken = _lockManager.LockResource(_webDavClient, sourceUri, LockScope.Exclusive); _logger.Debug("Moving remote file " + sourceUri + " to new destination " + dstUri); //Cannot get Exclusive Token, retry the sync at a later time if (lockToken == null || tempLockToken == null) { return(null); } try { WebDavResponse move = _webDavClient.Move(sourceUri, dstUri, new MoveParameters() { Overwrite = overwrite, DestLockToken = lockToken, SourceLockToken = tempLockToken, CancellationToken = cancleToken }).Result; if (move != null && move.IsSuccessful) { return(GetProperty(dstUri, _webDavClient)); } else { _logger.Error("Error occured while moving " + sourceUri + " to " + dstUri); } } catch (Exception exc) { _logger.Error("Error while moving temp file to its destination address: ", exc); } finally { _lockManager.UnlockResource(_webDavClient, dstUri, lockToken); _lockManager.UnlockResource(_webDavClient, sourceUri, tempLockToken); } return(null); }
public async Task MoveToFolder(DavItem itemToMove, DavItem targetFolder) { var client = new WebDavClient(new Uri(Configuration.ServerUrl, UriKind.RelativeOrAbsolute), Configuration.Credential); var target = targetFolder.EntityId.TrimEnd('/') + "/" + itemToMove.EntityId.TrimEnd('/').Substring(itemToMove.EntityId.TrimEnd('/').LastIndexOf('/') + 1); await client.Move(new Uri(itemToMove.EntityId, UriKind.RelativeOrAbsolute), new Uri(target, UriKind.RelativeOrAbsolute)); }
public async void When_RequestIsFailed_Should_ReturnStatusCode500() { var client = new WebDavClient().SetWebDavDispatcher(Dispatcher.MockFaulted()); var response = await client.Move("http://example.com/old", "http://example.com/new"); Assert.Equal(500, response.StatusCode); }
public async void When_IsCalledWithBothLockTokens_Should_SetIfHeaderWithBothTokens() { var sourceUri = new Uri("http://example.com/old"); var dispatcher = Dispatcher.Mock(); var client = new WebDavClient().SetWebDavDispatcher(dispatcher); await dispatcher.DidNotReceiveWithAnyArgs().Send(sourceUri, Arg.Any<HttpMethod>(), new RequestParameters(), CancellationToken.None); await client.Move(sourceUri, new Uri("http://example.com/new"), new MoveParameters { SourceLockToken = "urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6", DestLockToken = "urn:uuid:e71d4fae-5dec-22d6-fea5-00a0c91e6be4" }); await dispatcher.Received(1) .Send(sourceUri, WebDavMethod.Move, Arg.Is(CheckIfHeader()), CancellationToken.None); }
public async void When_IsCalledWithSourceLockToken_Should_SetIfHeader() { var sourceUri = new Uri("http://example.com/old"); var dispatcher = Dispatcher.Mock(); var client = new WebDavClient().SetWebDavDispatcher(dispatcher); await dispatcher.DidNotReceiveWithAnyArgs().Send(sourceUri, Arg.Any<HttpMethod>(), new RequestParameters(), CancellationToken.None); await client.Move(sourceUri, new Uri("http://example.com/new"), new MoveParameters { SourceLockToken = "urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6" }); await dispatcher.Received(1) .Send(sourceUri, WebDavMethod.Move, Arg.Is(Predicates.CompareHeader("If", "(<urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6>)")), CancellationToken.None); }
public async void When_IsCalledWithCancellationToken_Should_SendRequestWithIt() { var cts = new CancellationTokenSource(); var dispatcher = Dispatcher.Mock(); var client = new WebDavClient().SetWebDavDispatcher(dispatcher); await client.Move("http://example.com/old", "http://example.com/new", new MoveParameters { CancellationToken = cts.Token }); await dispatcher.Received(1) .Send(Arg.Any<Uri>(), WebDavMethod.Move, Arg.Is(CheckMoveRequestParameters()), cts.Token); }