aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Tango.FileSystem
diff options
context:
space:
mode:
authorRoy Ben Shabat <Roy.mail.net@gmail.com>2020-03-28 10:02:12 +0300
committerRoy Ben Shabat <Roy.mail.net@gmail.com>2020-03-28 10:02:12 +0300
commit3d6a882cf14f36297d8b379e0fdf65376064edf7 (patch)
tree91728997624076d0eb0d6b38df011851e559a838 /Software/Visual_Studio/Tango.FileSystem
parent888d3037722f80b00c12e140ba101f58661ec4b6 (diff)
downloadTango-3d6a882cf14f36297d8b379e0fdf65376064edf7.tar.gz
Tango-3d6a882cf14f36297d8b379e0fdf65376064edf7.zip
Many changes and improvements.
Diffstat (limited to 'Software/Visual_Studio/Tango.FileSystem')
-rw-r--r--Software/Visual_Studio/Tango.FileSystem/FileExplorerControl.cs26
-rw-r--r--Software/Visual_Studio/Tango.FileSystem/FileSystemManager.cs59
-rw-r--r--Software/Visual_Studio/Tango.FileSystem/Network/ChunkDownloadRequest.cs2
-rw-r--r--Software/Visual_Studio/Tango.FileSystem/Network/ChunkUploadRequest.cs1
-rw-r--r--Software/Visual_Studio/Tango.FileSystem/Network/FolderUploadRequest.cs13
-rw-r--r--Software/Visual_Studio/Tango.FileSystem/Network/FolderUploadResponse.cs13
-rw-r--r--Software/Visual_Studio/Tango.FileSystem/Network/PerformDiskSpaceOptimizationRequest.cs12
-rw-r--r--Software/Visual_Studio/Tango.FileSystem/Network/PerformDiskSpaceOptimizationResponse.cs13
-rw-r--r--Software/Visual_Studio/Tango.FileSystem/Tango.FileSystem.csproj8
9 files changed, 145 insertions, 2 deletions
diff --git a/Software/Visual_Studio/Tango.FileSystem/FileExplorerControl.cs b/Software/Visual_Studio/Tango.FileSystem/FileExplorerControl.cs
index 3660a18f0..0769b3576 100644
--- a/Software/Visual_Studio/Tango.FileSystem/FileExplorerControl.cs
+++ b/Software/Visual_Studio/Tango.FileSystem/FileExplorerControl.cs
@@ -233,6 +233,22 @@ namespace Tango.FileSystem
public static readonly DependencyProperty RenameCommandInternalProperty =
DependencyProperty.Register("RenameCommandInternal", typeof(ICommand), typeof(FileExplorerControl), new PropertyMetadata(null));
+ public ICommand UploadCommandInternal
+ {
+ get { return (ICommand)GetValue(UploadCommandInternalProperty); }
+ set { SetValue(UploadCommandInternalProperty, value); }
+ }
+ public static readonly DependencyProperty UploadCommandInternalProperty =
+ DependencyProperty.Register("UploadCommandInternal", typeof(ICommand), typeof(FileExplorerControl), new PropertyMetadata(null));
+
+ public ICommand UploadCommand
+ {
+ get { return (ICommand)GetValue(UploadCommandProperty); }
+ set { SetValue(UploadCommandProperty, value); }
+ }
+ public static readonly DependencyProperty UploadCommandProperty =
+ DependencyProperty.Register("UploadCommand", typeof(ICommand), typeof(FileExplorerControl), new PropertyMetadata(null));
+
public bool IsContextMenuOpened
{
get { return (bool)GetValue(IsContextMenuOpenedProperty); }
@@ -395,6 +411,11 @@ namespace Tango.FileSystem
return true;
});
+
+ UploadCommandInternal = new RelayCommand(() =>
+ {
+ UploadCommand?.Execute(null);
+ });
}
private void OnIsContextMenuOpenedChanged()
@@ -408,6 +429,7 @@ namespace Tango.FileSystem
(DeleteCommandInternal as RelayCommand)?.RaiseCanExecuteChanged();
(RenameCommandInternal as RelayCommand)?.RaiseCanExecuteChanged();
(NewFolderCommandInternal as RelayCommand)?.RaiseCanExecuteChanged();
+ (UploadCommandInternal as RelayCommand)?.RaiseCanExecuteChanged();
if (IsContextMenuOpened)
{
@@ -808,6 +830,7 @@ namespace Tango.FileSystem
try
{
+ Debug.WriteLine("Drag Started...");
var ef = DragDrop.DoDragDrop(this, new DataObject(DataFormats.FileDrop, files, false), DragDropEffects.Copy);
}
catch (Exception ex)
@@ -816,6 +839,8 @@ namespace Tango.FileSystem
Debugger.Break();
}
+ Debug.WriteLine("Drag Stopped...");
+
await Task.Delay(3000);
foreach (var watcher in watchers)
@@ -838,6 +863,7 @@ namespace Tango.FileSystem
{
if (IsVisible)
{
+ AllowDrop = true;
await Task.Delay(100);
this.Focus();
Keyboard.Focus(this);
diff --git a/Software/Visual_Studio/Tango.FileSystem/FileSystemManager.cs b/Software/Visual_Studio/Tango.FileSystem/FileSystemManager.cs
index 46ca080a2..c08304ca8 100644
--- a/Software/Visual_Studio/Tango.FileSystem/FileSystemManager.cs
+++ b/Software/Visual_Studio/Tango.FileSystem/FileSystemManager.cs
@@ -7,6 +7,7 @@ using System.Text.RegularExpressions;
using System.Threading.Tasks;
using Tango.Core.Helpers;
using Tango.FileSystem.Network;
+using Tango.Logging;
namespace Tango.FileSystem
{
@@ -22,7 +23,7 @@ namespace Tango.FileSystem
{
Path = x.RootDirectory.FullName,
DriveType = x.DriveType,
- DriveLabel = x.Name,
+ DriveLabel = $"{x.VolumeLabel} ({x.Name.Replace("\\", "")})",
Type = FileSystemItemType.Drive,
}).Cast<FileSystemItemDTO>().ToList();
@@ -198,5 +199,61 @@ namespace Tango.FileSystem
Path = fullPath
});
}
+
+ public long PerformDiskSpaceOptimization()
+ {
+ var tempDir = Path.GetTempPath();
+ var logsFolder = FileLogger.DefaultLogsFolder;
+
+ long sizeBefore = GetDirectorySize(new DirectoryInfo(tempDir)) + GetDirectorySize(new DirectoryInfo(logsFolder));
+
+ foreach (var file in Directory.GetFiles(tempDir, "*.*", SearchOption.AllDirectories))
+ {
+ try
+ {
+ FileInfo fileInfo = new FileInfo(file);
+ if (fileInfo.LastWriteTime < DateTime.Now.AddDays(-1))
+ {
+ File.Delete(file);
+ }
+ }
+ catch { }
+ }
+
+ foreach (var file in Directory.GetFiles(logsFolder, "*.*", SearchOption.AllDirectories))
+ {
+ try
+ {
+ FileInfo fileInfo = new FileInfo(file);
+ if (fileInfo.LastWriteTime < DateTime.Now.AddDays(-2))
+ {
+ File.Delete(file);
+ }
+ }
+ catch { }
+ }
+
+ long sizeAfter = GetDirectorySize(new DirectoryInfo(tempDir)) + GetDirectorySize(new DirectoryInfo(logsFolder));
+
+ return Math.Max(sizeBefore - sizeAfter, 0);
+ }
+
+ public static long GetDirectorySize(DirectoryInfo d)
+ {
+ long size = 0;
+ // Add file sizes.
+ FileInfo[] fis = d.GetFiles();
+ foreach (FileInfo fi in fis)
+ {
+ size += fi.Length;
+ }
+ // Add subdirectory sizes.
+ DirectoryInfo[] dis = d.GetDirectories();
+ foreach (DirectoryInfo di in dis)
+ {
+ size += GetDirectorySize(di);
+ }
+ return size;
+ }
}
}
diff --git a/Software/Visual_Studio/Tango.FileSystem/Network/ChunkDownloadRequest.cs b/Software/Visual_Studio/Tango.FileSystem/Network/ChunkDownloadRequest.cs
index 16951930e..caedad88b 100644
--- a/Software/Visual_Studio/Tango.FileSystem/Network/ChunkDownloadRequest.cs
+++ b/Software/Visual_Studio/Tango.FileSystem/Network/ChunkDownloadRequest.cs
@@ -10,6 +10,6 @@ namespace Tango.FileSystem.Network
{
public String OperationId { get; set; }
public long Position { get; set; }
- public long MaxChunkSize { get; set; } = 1024 * 1024;
+ public long MaxChunkSize { get; set; } = 1024 * 10;
}
}
diff --git a/Software/Visual_Studio/Tango.FileSystem/Network/ChunkUploadRequest.cs b/Software/Visual_Studio/Tango.FileSystem/Network/ChunkUploadRequest.cs
index 98a27efd2..ed6b3e45f 100644
--- a/Software/Visual_Studio/Tango.FileSystem/Network/ChunkUploadRequest.cs
+++ b/Software/Visual_Studio/Tango.FileSystem/Network/ChunkUploadRequest.cs
@@ -10,5 +10,6 @@ namespace Tango.FileSystem.Network
{
public String OperationId { get; set; }
public byte[] Data { get; set; }
+ public bool IsCompleted { get; set; }
}
}
diff --git a/Software/Visual_Studio/Tango.FileSystem/Network/FolderUploadRequest.cs b/Software/Visual_Studio/Tango.FileSystem/Network/FolderUploadRequest.cs
new file mode 100644
index 000000000..79a93eff3
--- /dev/null
+++ b/Software/Visual_Studio/Tango.FileSystem/Network/FolderUploadRequest.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Tango.FileSystem.Network
+{
+ public class FolderUploadRequest
+ {
+ public String Path { get; set; }
+ }
+}
diff --git a/Software/Visual_Studio/Tango.FileSystem/Network/FolderUploadResponse.cs b/Software/Visual_Studio/Tango.FileSystem/Network/FolderUploadResponse.cs
new file mode 100644
index 000000000..dc661dc95
--- /dev/null
+++ b/Software/Visual_Studio/Tango.FileSystem/Network/FolderUploadResponse.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Tango.FileSystem.Network
+{
+ public class FolderUploadResponse
+ {
+ public String OperationId { get; set; }
+ }
+}
diff --git a/Software/Visual_Studio/Tango.FileSystem/Network/PerformDiskSpaceOptimizationRequest.cs b/Software/Visual_Studio/Tango.FileSystem/Network/PerformDiskSpaceOptimizationRequest.cs
new file mode 100644
index 000000000..bd69bf9d8
--- /dev/null
+++ b/Software/Visual_Studio/Tango.FileSystem/Network/PerformDiskSpaceOptimizationRequest.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Tango.FileSystem.Network
+{
+ public class PerformDiskSpaceOptimizationRequest
+ {
+ }
+}
diff --git a/Software/Visual_Studio/Tango.FileSystem/Network/PerformDiskSpaceOptimizationResponse.cs b/Software/Visual_Studio/Tango.FileSystem/Network/PerformDiskSpaceOptimizationResponse.cs
new file mode 100644
index 000000000..73cbbf566
--- /dev/null
+++ b/Software/Visual_Studio/Tango.FileSystem/Network/PerformDiskSpaceOptimizationResponse.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Tango.FileSystem.Network
+{
+ public class PerformDiskSpaceOptimizationResponse
+ {
+ public long DeletedBytes { get; set; }
+ }
+}
diff --git a/Software/Visual_Studio/Tango.FileSystem/Tango.FileSystem.csproj b/Software/Visual_Studio/Tango.FileSystem/Tango.FileSystem.csproj
index a31af216c..d78419b7f 100644
--- a/Software/Visual_Studio/Tango.FileSystem/Tango.FileSystem.csproj
+++ b/Software/Visual_Studio/Tango.FileSystem/Tango.FileSystem.csproj
@@ -64,10 +64,14 @@
<Compile Include="Network\CreateFolderResponse.cs" />
<Compile Include="Network\DeleteRequest.cs" />
<Compile Include="Network\DeleteResponse.cs" />
+ <Compile Include="Network\FolderUploadRequest.cs" />
+ <Compile Include="Network\FolderUploadResponse.cs" />
<Compile Include="Network\InitWebRtcRequest.cs" />
<Compile Include="Network\InitWebRtcResponse.cs" />
<Compile Include="Network\MoveRequest.cs" />
<Compile Include="Network\MoveResponse.cs" />
+ <Compile Include="Network\PerformDiskSpaceOptimizationRequest.cs" />
+ <Compile Include="Network\PerformDiskSpaceOptimizationResponse.cs" />
<Compile Include="VirtualFileDataObject.cs" />
<Page Include="Themes\Generic.xaml">
<Generator>MSBuild:Compile</Generator>
@@ -131,6 +135,10 @@
<Project>{a34ee0f0-649d-41c8-8489-b6f1cc6924ee}</Project>
<Name>Tango.Core</Name>
</ProjectReference>
+ <ProjectReference Include="..\Tango.Logging\Tango.Logging.csproj">
+ <Project>{BC932DBD-7CDB-488C-99E4-F02CF441F55E}</Project>
+ <Name>Tango.Logging</Name>
+ </ProjectReference>
<ProjectReference Include="..\Tango.SharedUI\Tango.SharedUI.csproj">
<Project>{8491d07b-c1f6-4b62-a412-41b9fd2d6538}</Project>
<Name>Tango.SharedUI</Name>