Revision 42800be8
b/trunk/Pithos.Client.WPF/FileProperties/ContainerPropertiesView.xaml | ||
---|---|---|
1 |
<Window x:Class="Pithos.Client.WPF.FileProperties.ContainerPropertiesView" |
|
2 |
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" |
|
3 |
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
|
4 |
Title="ContainerPropertiesView" Height="300" Width="300" |
|
5 |
Background="#FFD4D0C8"> |
|
6 |
<Window.Resources> |
|
7 |
<ResourceDictionary> |
|
8 |
<ResourceDictionary.MergedDictionaries> |
|
9 |
<ResourceDictionary Source="..\PithosStyles.xaml" /> |
|
10 |
</ResourceDictionary.MergedDictionaries> |
|
11 |
</ResourceDictionary> |
|
12 |
</Window.Resources> |
|
13 |
<Grid> |
|
14 |
<Grid.RowDefinitions> |
|
15 |
<RowDefinition Height="Auto"/> |
|
16 |
<RowDefinition Height="Auto"/> |
|
17 |
<RowDefinition Height="*"/> |
|
18 |
<RowDefinition Height="Auto"/> |
|
19 |
</Grid.RowDefinitions> |
|
20 |
<Grid Grid.Row="0" Margin="5"> |
|
21 |
<Grid.ColumnDefinitions> |
|
22 |
<ColumnDefinition Width="Auto"/> |
|
23 |
<ColumnDefinition Width="*"/> |
|
24 |
<ColumnDefinition Width="Auto"/> |
|
25 |
</Grid.ColumnDefinitions> |
|
26 |
<Image x:Name="FileIcon" Margin="5" Grid.Column="0" Stretch="None" Source="/Pithos.Client.WPF;component/Images/Container.png" /> |
|
27 |
<TextBlock x:Name="ContainerName" Margin="5" Grid.Column="1" Text="Container Name" FontSize="16" FontWeight="Bold"/> |
|
28 |
<TextBlock x:Name="ShortSize" Margin="5" Text="345 KB" FontWeight="Bold" FontSize="14" Grid.Column="2" /> |
|
29 |
</Grid> |
|
30 |
<GroupBox Header="General" Grid.Row="1" Margin="5"> |
|
31 |
<Grid> |
|
32 |
<Grid.Resources> |
|
33 |
<Style x:Key="NameColumnStyle" TargetType="TextBlock"> |
|
34 |
<Setter Property="HorizontalAlignment" Value="Right"/> |
|
35 |
<Setter Property="Margin" Value="5,2"/> |
|
36 |
</Style> |
|
37 |
<Style x:Key="ValueColumnStyle" TargetType="TextBlock"> |
|
38 |
<Setter Property="HorizontalAlignment" Value="Left"/> |
|
39 |
<Setter Property="Margin" Value="5,2"/> |
|
40 |
</Style> |
|
41 |
</Grid.Resources> |
|
42 |
<Grid.ColumnDefinitions> |
|
43 |
<ColumnDefinition Width="Auto" /> |
|
44 |
<ColumnDefinition Width="*"/> |
|
45 |
</Grid.ColumnDefinitions> |
|
46 |
<Grid.RowDefinitions> |
|
47 |
<RowDefinition/> |
|
48 |
<RowDefinition/> |
|
49 |
<RowDefinition/> |
|
50 |
<RowDefinition/> |
|
51 |
<RowDefinition/> |
|
52 |
<RowDefinition/> |
|
53 |
</Grid.RowDefinitions> |
|
54 |
<TextBlock Text="Count :" Grid.Row="0" Grid.Column="0" Style="{StaticResource ResourceKey=NameColumnStyle}"/> |
|
55 |
<TextBlock Text="Size :" Grid.Row="1" Grid.Column="0" Style="{StaticResource ResourceKey=NameColumnStyle}"/> |
|
56 |
<TextBlock Text="Modified :" Grid.Row="3" Grid.Column="0" Style="{StaticResource ResourceKey=NameColumnStyle}"/> |
|
57 |
<TextBlock Text="Block Size :" Grid.Row="4" Grid.Column="0" Style="{StaticResource ResourceKey=NameColumnStyle}"/> |
|
58 |
<TextBlock Text="Block Hash :" Grid.Row="5" Grid.Column="0" Style="{StaticResource ResourceKey=NameColumnStyle}"/> |
|
59 |
<TextBlock x:Name="Count" Text="123" Grid.Row="0" Grid.Column="1" Style="{StaticResource ResourceKey=ValueColumnStyle}"/> |
|
60 |
<TextBlock x:Name="Size" Text="345 KB (345,332 bytes)" Grid.Row="1" Grid.Column="1" Style="{StaticResource ResourceKey=ValueColumnStyle}"/> |
|
61 |
<TextBlock x:Name="Modified" Text="28/10/2011 11:34 AM" Grid.Row="3" Grid.Column="1" Style="{StaticResource ResourceKey=ValueColumnStyle}"/> |
|
62 |
<TextBlock x:Name="BlockSize" Text="4012354486" Grid.Row="4" Grid.Column="1" Style="{StaticResource ResourceKey=ValueColumnStyle}"/> |
|
63 |
<TextBlock x:Name="BlockHash" Text="2345456" Grid.Row="5" Grid.Column="1" Style="{StaticResource ResourceKey=ValueColumnStyle}"/> |
|
64 |
</Grid> |
|
65 |
</GroupBox> |
|
66 |
|
|
67 |
<StackPanel Orientation="Horizontal" Grid.Row="3" HorizontalAlignment="Right"> |
|
68 |
<Button Name="SaveChanges" Content="OK" Margin="5,5,10,5" Style="{StaticResource ButtonStyle}"/> |
|
69 |
<Button Name="RejectChanges" Content="Cancel" Margin="5,5,10,5" Style="{StaticResource ButtonStyle}"/> |
|
70 |
<Button Name="ApplyChanges" Content="Apply" Style="{StaticResource ButtonStyle}" /> |
|
71 |
</StackPanel> |
|
72 |
|
|
73 |
</Grid> |
|
74 |
</Window> |
b/trunk/Pithos.Client.WPF/FileProperties/ContainerPropertiesView.xaml.cs | ||
---|---|---|
1 |
using System; |
|
2 |
using System.Collections.Generic; |
|
3 |
using System.Linq; |
|
4 |
using System.Text; |
|
5 |
using System.Windows; |
|
6 |
using System.Windows.Controls; |
|
7 |
using System.Windows.Data; |
|
8 |
using System.Windows.Documents; |
|
9 |
using System.Windows.Input; |
|
10 |
using System.Windows.Media; |
|
11 |
using System.Windows.Media.Imaging; |
|
12 |
using System.Windows.Shapes; |
|
13 |
|
|
14 |
namespace Pithos.Client.WPF.FileProperties |
|
15 |
{ |
|
16 |
/// <summary> |
|
17 |
/// Interaction logic for ContainerPropertiesView.xaml |
|
18 |
/// </summary> |
|
19 |
public partial class ContainerPropertiesView : Window |
|
20 |
{ |
|
21 |
public ContainerPropertiesView() |
|
22 |
{ |
|
23 |
InitializeComponent(); |
|
24 |
} |
|
25 |
} |
|
26 |
} |
b/trunk/Pithos.Client.WPF/FileProperties/ContainerPropertiesViewModel.cs | ||
---|---|---|
1 |
using System; |
|
2 |
using System.Collections.Concurrent; |
|
3 |
using System.Collections.Generic; |
|
4 |
using System.ComponentModel.Composition; |
|
5 |
using System.Diagnostics.Contracts; |
|
6 |
using System.Linq; |
|
7 |
using System.Text; |
|
8 |
using Caliburn.Micro; |
|
9 |
using Pithos.Network; |
|
10 |
|
|
11 |
namespace Pithos.Client.WPF.FileProperties |
|
12 |
{ |
|
13 |
[Export(typeof(ContainerPropertiesViewModel))] |
|
14 |
public class ContainerPropertiesViewModel:Screen |
|
15 |
{ |
|
16 |
/// <summary> |
|
17 |
/// Name of the displayed container |
|
18 |
/// </summary> |
|
19 |
public string ContainerName { get; set; } |
|
20 |
/// <summary> |
|
21 |
/// Window title |
|
22 |
/// </summary> |
|
23 |
public string Title { get; set; } |
|
24 |
|
|
25 |
/// <summary> |
|
26 |
/// Count of files in the container |
|
27 |
/// </summary> |
|
28 |
public long Count { get; set; } |
|
29 |
|
|
30 |
/// <summary> |
|
31 |
/// Date of last modification |
|
32 |
/// </summary> |
|
33 |
public DateTime Modified { get; set; } |
|
34 |
|
|
35 |
/// <summary> |
|
36 |
/// Total size of the container in bytes |
|
37 |
/// </summary> |
|
38 |
public string Size { get; set; } |
|
39 |
|
|
40 |
/// <summary> |
|
41 |
/// Total size of the container formatted in KB,MB etc |
|
42 |
/// </summary> |
|
43 |
public string ShortSize { get; set; } |
|
44 |
|
|
45 |
/// <summary> |
|
46 |
/// Block size used by the container |
|
47 |
/// </summary> |
|
48 |
public int BlockSize { get; set; } |
|
49 |
|
|
50 |
/// <summary> |
|
51 |
/// Hash algorithm used to calculate block hashes |
|
52 |
/// </summary> |
|
53 |
public string BlockHash { get; set; } |
|
54 |
|
|
55 |
/// <summary> |
|
56 |
/// Reference to the parent Shell |
|
57 |
/// </summary> |
|
58 |
protected ShellViewModel Shell { get; set; } |
|
59 |
|
|
60 |
private ContainerInfo _container; |
|
61 |
/// <summary> |
|
62 |
/// The displayed ContainerInfo |
|
63 |
/// </summary> |
|
64 |
protected ContainerInfo Container |
|
65 |
{ |
|
66 |
get { return _container; } |
|
67 |
set |
|
68 |
{ |
|
69 |
_container = value; |
|
70 |
|
|
71 |
Count = value.Count; |
|
72 |
ShortSize = value.Bytes.ToByteSize(); |
|
73 |
Size = String.Format("{0} ({1:N0} bytes)", ShortSize, value.Bytes); |
|
74 |
Modified = value.Last_Modified; |
|
75 |
BlockSize = value.BlockSize; |
|
76 |
BlockHash = value.BlockHash; |
|
77 |
ContainerName = Uri.UnescapeDataString(value.Name.Split('/').Last()); |
|
78 |
|
|
79 |
NotifyOfPropertyChange(() => Container); |
|
80 |
} |
|
81 |
} |
|
82 |
|
|
83 |
|
|
84 |
|
|
85 |
|
|
86 |
public ContainerPropertiesViewModel(ShellViewModel shell, ContainerInfo container, string localFolderName) |
|
87 |
{ |
|
88 |
if (shell==null) |
|
89 |
throw new ArgumentNullException("shell"); |
|
90 |
if (container==null) |
|
91 |
throw new ArgumentNullException("container"); |
|
92 |
if (String.IsNullOrWhiteSpace(localFolderName)) |
|
93 |
throw new ArgumentNullException("localFolderName"); |
|
94 |
Contract.EndContractBlock(); |
|
95 |
|
|
96 |
Shell = shell; |
|
97 |
ContainerName = localFolderName; |
|
98 |
Container = container; |
|
99 |
Title = String.Format("{0} Properties", container.Name); |
|
100 |
|
|
101 |
} |
|
102 |
|
|
103 |
|
|
104 |
|
|
105 |
public void Refresh() |
|
106 |
{ |
|
107 |
Container = Shell.RefreshContainerInfo(Container); |
|
108 |
} |
|
109 |
|
|
110 |
public override void CanClose(Action<bool> callback) |
|
111 |
{ |
|
112 |
base.CanClose(callback); |
|
113 |
} |
|
114 |
|
|
115 |
public void SaveChanges() |
|
116 |
{ |
|
117 |
DoSave(); |
|
118 |
TryClose(); |
|
119 |
} |
|
120 |
|
|
121 |
public void RejectChanges() |
|
122 |
{ |
|
123 |
TryClose(); |
|
124 |
} |
|
125 |
|
|
126 |
public void ApplyChanges() |
|
127 |
{ |
|
128 |
DoSave(); |
|
129 |
} |
|
130 |
|
|
131 |
private void DoSave() |
|
132 |
{ |
|
133 |
|
|
134 |
} |
|
135 |
|
|
136 |
} |
|
137 |
} |
b/trunk/Pithos.Client.WPF/FileProperties/FilePropertiesViewModel.cs | ||
---|---|---|
15 | 15 |
using System.Windows.Interop; |
16 | 16 |
using System.Windows.Media.Imaging; |
17 | 17 |
using Caliburn.Micro; |
18 |
using Pithos.Client.WPF.FileProperties; |
|
18 | 19 |
using Pithos.Interfaces; |
19 | 20 |
|
20 | 21 |
namespace Pithos.Client.WPF |
... | ... | |
28 | 29 |
/// TODO: Update summary. |
29 | 30 |
/// </summary> |
30 | 31 |
[Export(typeof(FilePropertiesViewModel))] |
31 |
public class FilePropertiesViewModel : Screen, IShell
|
|
32 |
public class FilePropertiesViewModel : Screen |
|
32 | 33 |
{ |
33 | 34 |
private string _title; |
34 | 35 |
public string Title |
... | ... | |
85 | 86 |
((IDictionary<string,string>)Permissions).Clear(); |
86 | 87 |
value.Permissions.Apply(perm=>Permissions.Add(perm.Key,perm.Value)); |
87 | 88 |
Kind=value.Content_Type; |
88 |
ShortSize = ByteSize(value.Bytes);
|
|
89 |
ShortSize = value.Bytes.ToByteSize();
|
|
89 | 90 |
Size = String.Format("{0} ({1:N0} bytes)", ShortSize, value.Bytes); |
90 | 91 |
Where = Uri.UnescapeDataString(value.Name); |
91 | 92 |
FileName = Uri.UnescapeDataString(value.Name.Split('/').Last()); |
... | ... | |
147 | 148 |
|
148 | 149 |
} |
149 | 150 |
|
150 |
static string[] sizeSuffixes = { |
|
151 |
"B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB" }; |
|
152 |
|
|
153 |
public string ByteSize(long size) |
|
154 |
{ |
|
155 |
|
|
156 |
const string formatTemplate = "{0}{1:0.#} {2}"; |
|
157 |
|
|
158 |
if (size == 0) |
|
159 |
{ |
|
160 |
return string.Format(formatTemplate, null, 0, sizeSuffixes[0]); |
|
161 |
} |
|
162 |
|
|
163 |
var absSize = Math.Abs((double)size); |
|
164 |
var fpPower = Math.Log(absSize, 1000); |
|
165 |
var intPower = (int)fpPower; |
|
166 |
var iUnit = intPower >= sizeSuffixes.Length |
|
167 |
? sizeSuffixes.Length - 1 |
|
168 |
: intPower; |
|
169 |
var normSize = absSize / Math.Pow(1000, iUnit); |
|
170 |
|
|
171 |
return string.Format( |
|
172 |
formatTemplate, |
|
173 |
size < 0 ? "-" : null, normSize, sizeSuffixes[iUnit]); |
|
174 |
} |
|
175 |
|
|
176 | 151 |
|
177 | 152 |
} |
178 | 153 |
} |
b/trunk/Pithos.Client.WPF/FileProperties/SizeExtensions.cs | ||
---|---|---|
1 |
using System; |
|
2 |
using System.Collections.Generic; |
|
3 |
using System.Linq; |
|
4 |
using System.Text; |
|
5 |
|
|
6 |
namespace Pithos.Client.WPF.FileProperties |
|
7 |
{ |
|
8 |
public static class SizeExtensions |
|
9 |
{ |
|
10 |
|
|
11 |
|
|
12 |
static readonly string[] SizeSuffixes = { |
|
13 |
"B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB" }; |
|
14 |
|
|
15 |
public static string ToByteSize(this long size) |
|
16 |
{ |
|
17 |
|
|
18 |
const string formatTemplate = "{0}{1:0.#} {2}"; |
|
19 |
|
|
20 |
if (size == 0) |
|
21 |
{ |
|
22 |
return string.Format(formatTemplate, null, 0, SizeSuffixes[0]); |
|
23 |
} |
|
24 |
|
|
25 |
var absSize = Math.Abs((double)size); |
|
26 |
var fpPower = Math.Log(absSize, 1000); |
|
27 |
var intPower = (int)fpPower; |
|
28 |
var iUnit = intPower >= SizeSuffixes.Length |
|
29 |
? SizeSuffixes.Length - 1 |
|
30 |
: intPower; |
|
31 |
var normSize = absSize / Math.Pow(1000, iUnit); |
|
32 |
|
|
33 |
return string.Format( |
|
34 |
formatTemplate, |
|
35 |
size < 0 ? "-" : null, normSize, SizeSuffixes[iUnit]); |
|
36 |
} |
|
37 |
|
|
38 |
} |
|
39 |
} |
b/trunk/Pithos.Client.WPF/Pithos.Client.WPF.csproj | ||
---|---|---|
178 | 178 |
<Compile Include="Caliburn\Micro\Logging\log4netLogger.cs" /> |
179 | 179 |
<Compile Include="Configuration\PithosSettings.cs" /> |
180 | 180 |
<Compile Include="FileEntry.cs" /> |
181 |
<Compile Include="FileProperties\ContainerPropertiesView.xaml.cs"> |
|
182 |
<DependentUpon>ContainerPropertiesView.xaml</DependentUpon> |
|
183 |
</Compile> |
|
184 |
<Compile Include="FileProperties\ContainerPropertiesViewModel.cs" /> |
|
181 | 185 |
<Compile Include="FileProperties\FilePropertiesView.xaml.cs"> |
182 | 186 |
<DependentUpon>FilePropertiesView.xaml</DependentUpon> |
183 | 187 |
</Compile> |
184 | 188 |
<Compile Include="FileProperties\FilePropertiesViewModel.cs" /> |
189 |
<Compile Include="FileProperties\SizeExtensions.cs" /> |
|
185 | 190 |
<Compile Include="NativeMethods.cs" /> |
186 | 191 |
<Compile Include="Notification.cs" /> |
187 | 192 |
<Compile Include="PithosAccount.cs" /> |
... | ... | |
201 | 206 |
<Compile Include="ShellViewModel.cs" /> |
202 | 207 |
<Compile Include="Services\StatusService.cs" /> |
203 | 208 |
<Compile Include="Wpf32Window.cs" /> |
209 |
<Page Include="FileProperties\ContainerPropertiesView.xaml"> |
|
210 |
<SubType>Designer</SubType> |
|
211 |
<Generator>MSBuild:Compile</Generator> |
|
212 |
</Page> |
|
204 | 213 |
<Page Include="FileProperties\FilePropertiesView.xaml"> |
205 | 214 |
<SubType>Designer</SubType> |
206 | 215 |
<Generator>MSBuild:Compile</Generator> |
... | ... | |
315 | 324 |
<EmbedInteropTypes>False</EmbedInteropTypes> |
316 | 325 |
</COMReference> |
317 | 326 |
</ItemGroup> |
327 |
<ItemGroup> |
|
328 |
<Resource Include="Images\Container.png" /> |
|
329 |
</ItemGroup> |
|
318 | 330 |
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> |
319 | 331 |
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. |
320 | 332 |
Other similar extension points exist, see Microsoft.Common.targets. |
b/trunk/Pithos.Client.WPF/Preferences/PreferencesView.xaml | ||
---|---|---|
138 | 138 |
<TextBlock Text="Proxy"/> |
139 | 139 |
</StackPanel> |
140 | 140 |
</TabItem.Header> |
141 |
<GroupBox Header="Proxy Settings" Height="275" Margin="10,5" VerticalAlignment="Top" Width="396"> |
|
142 |
<Grid> |
|
141 |
<Grid Margin="10,5"> |
|
143 | 142 |
<RadioButton Name="Settings_UseDefaultProxy" Content="Use System Defaults" Margin="5,6,5,0" Height="16" VerticalAlignment="Top"/> |
144 | 143 |
<RadioButton Name="Settings_UseManualProxy" Content="Manual" Margin="5,28,5,0" Height="16" VerticalAlignment="Top"/> |
145 | 144 |
<Label Content="Server" Height="28" HorizontalAlignment="Left" Margin="5,47,0,0" Name="label2" VerticalAlignment="Top" /> |
... | ... | |
159 | 158 |
</Grid> |
160 | 159 |
</GroupBox> |
161 | 160 |
</Grid> |
162 |
</GroupBox> |
|
163 | 161 |
</TabItem> |
164 | 162 |
<TabItem VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch"> |
165 | 163 |
<TabItem.Header> |
b/trunk/Pithos.Client.WPF/Services/StatusService.cs | ||
---|---|---|
5 | 5 |
// ----------------------------------------------------------------------- |
6 | 6 |
|
7 | 7 |
|
8 |
using System; |
|
9 |
using System.ServiceModel.Description; |
|
8 | 10 |
using Caliburn.Micro; |
9 | 11 |
using System.ServiceModel; |
10 | 12 |
using System.ComponentModel.Composition; |
... | ... | |
29 | 31 |
[Import] |
30 | 32 |
public PithosMonitor Monitor { get; set; } |
31 | 33 |
|
34 |
[Import] |
|
35 |
public IEventAggregator Events { get; set; } |
|
36 |
|
|
32 | 37 |
public StatusService() |
33 | 38 |
{ |
34 | 39 |
IoC.BuildUp(this); |
35 |
} |
|
36 |
|
|
37 |
private IEventAggregator _events; |
|
38 |
|
|
39 |
[ImportingConstructor] |
|
40 |
public StatusService(IStatusChecker checker,IEventAggregator events) |
|
41 |
{ |
|
42 |
Checker = checker; |
|
43 |
_events = events; |
|
44 |
} |
|
45 |
|
|
40 |
} |
|
46 | 41 |
|
47 | 42 |
public FileOverlayStatus GetStatus(string filePath) |
48 | 43 |
{ |
... | ... | |
62 | 57 |
|
63 | 58 |
public void ShowProperties(string fileName) |
64 | 59 |
{ |
65 |
_events.Publish(new ShowFilePropertiesEvent(fileName)); |
|
60 |
Events.Publish(new ShowFilePropertiesEvent(fileName)); |
|
61 |
} |
|
62 |
|
|
63 |
public static ServiceHost Start() |
|
64 |
{ |
|
65 |
// Create a ServiceHost for the CalculatorService type and provide the base address. |
|
66 |
var baseAddress = new Uri("net.pipe://localhost/pithos"); |
|
67 |
var service = new ServiceHost(typeof(StatusService), baseAddress); |
|
68 |
|
|
69 |
var binding = new NetNamedPipeBinding(NetNamedPipeSecurityMode.None); |
|
70 |
|
|
71 |
service.AddServiceEndpoint(typeof(IStatusService), binding, "net.pipe://localhost/pithos/statuscache"); |
|
72 |
service.AddServiceEndpoint(typeof(ISettingsService), binding, "net.pipe://localhost/pithos/settings"); |
|
73 |
service.AddServiceEndpoint(typeof(ICommandsService), binding, "net.pipe://localhost/pithos/commands"); |
|
74 |
|
|
75 |
|
|
76 |
//// Add a mex endpoint |
|
77 |
var smb = new ServiceMetadataBehavior |
|
78 |
{ |
|
79 |
HttpGetEnabled = true, |
|
80 |
HttpGetUrl = new Uri("http://localhost:30000/pithos/mex") |
|
81 |
}; |
|
82 |
service.Description.Behaviors.Add(smb); |
|
83 |
|
|
84 |
|
|
85 |
service.Open(); |
|
86 |
return service; |
|
87 |
} |
|
88 |
|
|
89 |
public static void Stop(ServiceHost statusService) |
|
90 |
{ |
|
91 |
if (statusService == null) |
|
92 |
return; |
|
93 |
|
|
94 |
if (statusService.State == CommunicationState.Faulted) |
|
95 |
statusService.Abort(); |
|
96 |
else if (statusService.State != CommunicationState.Closed) |
|
97 |
statusService.Close(); |
|
98 |
|
|
66 | 99 |
} |
67 | 100 |
} |
68 | 101 |
} |
b/trunk/Pithos.Client.WPF/ShellView.xaml | ||
---|---|---|
70 | 70 |
<Separator /> |
71 | 71 |
<MenuItem Header="Preferences ..." x:Name="ShowPreferences" cal:Message.Attach="ShowPreferences" /> |
72 | 72 |
<Separator /> |
73 |
<MenuItem Header="Properties ..." x:Name="ShowFileProperties" cal:Message.Attach="ShowFileProperties" /> |
|
74 |
<Separator /> |
|
75 | 73 |
<MenuItem Header="Exit" Name="ExitPithos" cal:Message.Attach="ExitPithos" /> |
76 | 74 |
</ContextMenu> |
77 | 75 |
</tb:TaskbarIcon.ContextMenu> |
b/trunk/Pithos.Client.WPF/ShellViewModel.cs | ||
---|---|---|
1 | 1 |
using System.Collections.Concurrent; |
2 |
using System.ComponentModel; |
|
2 | 3 |
using System.ComponentModel.Composition; |
3 | 4 |
using System.Diagnostics; |
4 | 5 |
using System.Diagnostics.Contracts; |
... | ... | |
12 | 13 |
using Caliburn.Micro; |
13 | 14 |
using Hardcodet.Wpf.TaskbarNotification; |
14 | 15 |
using Pithos.Client.WPF.Configuration; |
16 |
using Pithos.Client.WPF.FileProperties; |
|
15 | 17 |
using Pithos.Client.WPF.Properties; |
16 | 18 |
using Pithos.Client.WPF.SelectiveSynch; |
19 |
using Pithos.Client.WPF.Services; |
|
17 | 20 |
using Pithos.Core; |
18 | 21 |
using Pithos.Interfaces; |
19 | 22 |
using System; |
... | ... | |
27 | 30 |
using System.ComponentModel.Composition; |
28 | 31 |
|
29 | 32 |
[Export(typeof(IShell))] |
30 |
public class ShellViewModel : Screen, IStatusNotification, IShell,
|
|
31 |
IHandle<Notification>, IHandle<SelectiveSynchChanges> |
|
33 |
public class ShellViewModel : Screen, IStatusNotification, IShell, |
|
34 |
IHandle<Notification>, IHandle<SelectiveSynchChanges>, IHandle<ShowFilePropertiesEvent>
|
|
32 | 35 |
{ |
33 | 36 |
|
34 | 37 |
private IStatusChecker _statusChecker; |
... | ... | |
76 | 79 |
protected override void OnActivate() |
77 | 80 |
{ |
78 | 81 |
base.OnActivate(); |
79 |
foreach (var account in Settings.Accounts) |
|
82 |
|
|
83 |
|
|
84 |
var tasks=from account in Settings.Accounts |
|
85 |
select MonitorAccount(account); |
|
86 |
|
|
87 |
try |
|
80 | 88 |
{ |
81 | 89 |
|
82 |
MonitorAccount(account); |
|
90 |
Task.Factory.Iterate(tasks).Wait(); |
|
91 |
_statusService=StatusService.Start(); |
|
92 |
|
|
93 |
} |
|
94 |
catch (AggregateException exc) |
|
95 |
{ |
|
96 |
exc.Handle(e =>{ |
|
97 |
Log.Error("Error while starting monitoring", e); |
|
98 |
return true; |
|
99 |
}); |
|
100 |
throw; |
|
83 | 101 |
} |
102 |
|
|
103 |
} |
|
84 | 104 |
|
85 |
StartStatusService(); |
|
105 |
protected override void OnDeactivate(bool close) |
|
106 |
{ |
|
107 |
base.OnDeactivate(close); |
|
108 |
if (close) |
|
109 |
{ |
|
110 |
StatusService.Stop(_statusService); |
|
111 |
_statusService = null; |
|
112 |
} |
|
86 | 113 |
} |
87 | 114 |
|
88 |
public void MonitorAccount(AccountSettings account)
|
|
115 |
public Task MonitorAccount(AccountSettings account)
|
|
89 | 116 |
{ |
90 |
Task.Factory.StartNew(() => |
|
117 |
return Task.Factory.StartNew(() =>
|
|
91 | 118 |
{ |
92 | 119 |
PithosMonitor monitor = null; |
93 | 120 |
var accountName = account.AccountName; |
... | ... | |
264 | 291 |
|
265 | 292 |
var fileProperties = new FilePropertiesViewModel(this, info,filePath); |
266 | 293 |
_windowManager.ShowWindow(fileProperties); |
294 |
} |
|
295 |
|
|
296 |
public void ShowContainerProperties() |
|
297 |
{ |
|
298 |
var account = Settings.Accounts.First(acc => acc.IsActive); |
|
299 |
var dir = new DirectoryInfo(account.RootPath); |
|
300 |
var fullName = (from folder in dir.EnumerateDirectories() |
|
301 |
where (folder.Attributes & FileAttributes.Hidden) == 0 |
|
302 |
select folder.FullName).First(); |
|
303 |
ShowContainerProperties(fullName); |
|
304 |
} |
|
305 |
|
|
306 |
public void ShowContainerProperties(string filePath) |
|
307 |
{ |
|
308 |
if (String.IsNullOrWhiteSpace(filePath)) |
|
309 |
throw new ArgumentNullException("filePath"); |
|
310 |
if (!Directory.Exists(filePath)) |
|
311 |
throw new ArgumentException(String.Format("Non existent file {0}",filePath),"filePath"); |
|
312 |
Contract.EndContractBlock(); |
|
313 |
|
|
314 |
var pair=(from monitor in Monitors |
|
315 |
where filePath.StartsWith(monitor.Value.RootPath, StringComparison.InvariantCultureIgnoreCase) |
|
316 |
select monitor).FirstOrDefault(); |
|
317 |
var account = pair.Key; |
|
318 |
var accountMonitor = pair.Value; |
|
319 |
ContainerInfo info = accountMonitor.GetContainerInfo(filePath); |
|
320 |
|
|
321 |
|
|
322 |
|
|
323 |
var containerProperties = new ContainerPropertiesViewModel(this, info,filePath); |
|
324 |
_windowManager.ShowWindow(containerProperties); |
|
267 | 325 |
} |
268 | 326 |
|
269 | 327 |
public ObjectInfo RefreshObjectInfo(ObjectInfo currentInfo) |
... | ... | |
277 | 335 |
return newInfo; |
278 | 336 |
} |
279 | 337 |
|
338 |
public ContainerInfo RefreshContainerInfo(ContainerInfo container) |
|
339 |
{ |
|
340 |
if (container == null) |
|
341 |
throw new ArgumentNullException("container"); |
|
342 |
Contract.EndContractBlock(); |
|
343 |
|
|
344 |
var monitor = Monitors[container.Account]; |
|
345 |
var newInfo = monitor.CloudClient.GetContainerInfo(container.Account, container.Name); |
|
346 |
return newInfo; |
|
347 |
} |
|
348 |
|
|
349 |
|
|
280 | 350 |
public void ToggleSynching() |
281 | 351 |
{ |
282 | 352 |
bool isPaused=false; |
... | ... | |
515 | 585 |
} |
516 | 586 |
} |
517 | 587 |
|
518 |
private void StartStatusService() |
|
519 |
{ |
|
520 |
// Create a ServiceHost for the CalculatorService type and provide the base address. |
|
521 |
var baseAddress = new Uri("net.pipe://localhost/pithos"); |
|
522 |
_statusService = new ServiceHost(typeof(StatusService), baseAddress); |
|
523 |
|
|
524 |
var binding = new NetNamedPipeBinding(NetNamedPipeSecurityMode.None); |
|
525 |
|
|
526 |
_statusService.AddServiceEndpoint(typeof(IStatusService), binding, "net.pipe://localhost/pithos/statuscache"); |
|
527 |
_statusService.AddServiceEndpoint(typeof(ISettingsService), binding, "net.pipe://localhost/pithos/settings"); |
|
528 |
|
|
529 |
|
|
530 |
//// Add a mex endpoint |
|
531 |
var smb = new ServiceMetadataBehavior |
|
532 |
{ |
|
533 |
HttpGetEnabled = true, |
|
534 |
HttpGetUrl = new Uri("http://localhost:30000/pithos/mex") |
|
535 |
}; |
|
536 |
_statusService.Description.Behaviors.Add(smb); |
|
537 |
|
|
538 |
|
|
539 |
_statusService.Open(); |
|
540 |
} |
|
541 |
|
|
542 |
private void StopStatusService() |
|
543 |
{ |
|
544 |
if (_statusService == null) |
|
545 |
return; |
|
546 |
|
|
547 |
if (_statusService.State == CommunicationState.Faulted) |
|
548 |
_statusService.Abort(); |
|
549 |
else if (_statusService.State != CommunicationState.Closed) |
|
550 |
_statusService.Close(); |
|
551 |
_statusService = null; |
|
552 |
|
|
553 |
} |
|
554 | 588 |
#region Event Handlers |
555 | 589 |
|
556 | 590 |
public void Handle(SelectiveSynchChanges message) |
... | ... | |
596 | 630 |
} |
597 | 631 |
} |
598 | 632 |
#endregion |
633 |
|
|
634 |
public void Handle(ShowFilePropertiesEvent message) |
|
635 |
{ |
|
636 |
if (message == null) |
|
637 |
throw new ArgumentNullException("message"); |
|
638 |
if (String.IsNullOrWhiteSpace(message.FileName) ) |
|
639 |
throw new ArgumentException("message"); |
|
640 |
Contract.EndContractBlock(); |
|
641 |
|
|
642 |
var fileName = message.FileName; |
|
643 |
|
|
644 |
if (File.Exists(fileName)) |
|
645 |
this.ShowFileProperties(fileName); |
|
646 |
else if (Directory.Exists(fileName)) |
|
647 |
this.ShowContainerProperties(fileName); |
|
648 |
} |
|
599 | 649 |
} |
600 | 650 |
} |
b/trunk/Pithos.Core/PithosMonitor.cs | ||
---|---|---|
455 | 455 |
container = parts[0]; |
456 | 456 |
relativeUrl = String.Join("/", parts.Splice(1)); |
457 | 457 |
} |
458 |
|
|
459 |
/*return new ObjectInfo |
|
460 |
{ |
|
461 |
Account = accountName, |
|
462 |
Container = container, |
|
463 |
Name = relativeUrl, |
|
464 |
Content_Type="application/pdf", |
|
465 |
Bytes = 123456, |
|
466 |
Hash = "8902372934sjhshjfsdjkf223894sdgh", |
|
467 |
Last_Modified = DateTime.Today.AddDays(-1), |
|
468 |
ModifiedBy = accountName, |
|
469 |
Version = 12312455, |
|
470 |
VersionTimestamp = DateTime.Today.AddDays(-1) |
|
471 |
};*/ |
|
472 |
|
|
458 |
|
|
473 | 459 |
var client = new CloudFilesClient(accountInfo); |
474 | 460 |
var objectInfo=client.GetObjectInfo(accountName, container, relativeUrl); |
475 | 461 |
return objectInfo; |
476 | 462 |
} |
463 |
|
|
464 |
public ContainerInfo GetContainerInfo(string filePath) |
|
465 |
{ |
|
466 |
if (String.IsNullOrWhiteSpace(filePath)) |
|
467 |
throw new ArgumentNullException("filePath"); |
|
468 |
Contract.EndContractBlock(); |
|
469 |
|
|
470 |
var file=new FileInfo(filePath); |
|
471 |
var relativePath = file.AsRelativeTo(RootPath); |
|
472 |
|
|
473 |
string accountName,container; |
|
474 |
|
|
475 |
var parts=relativePath.Split('\\'); |
|
476 |
|
|
477 |
var accountInfo = _accountInfo; |
|
478 |
if (relativePath.StartsWith(FolderConstants.OthersFolder)) |
|
479 |
{ |
|
480 |
accountName = parts[1]; |
|
481 |
container = parts[2]; |
|
482 |
//Create the root URL for the target account |
|
483 |
var oldName = UserName; |
|
484 |
var absoluteUri = _accountInfo.StorageUri.AbsoluteUri; |
|
485 |
var nameIndex=absoluteUri.IndexOf(oldName); |
|
486 |
var root=absoluteUri.Substring(0, nameIndex); |
|
487 |
|
|
488 |
accountInfo = new AccountInfo |
|
489 |
{ |
|
490 |
UserName = accountName, |
|
491 |
AccountPath = Path.Combine(accountInfo.AccountPath, parts[0], parts[1]), |
|
492 |
StorageUri = new Uri(root + accountName), |
|
493 |
BlockHash=accountInfo.BlockHash, |
|
494 |
BlockSize=accountInfo.BlockSize, |
|
495 |
Token=accountInfo.Token |
|
496 |
}; |
|
497 |
} |
|
498 |
else |
|
499 |
{ |
|
500 |
accountName = UserName; |
|
501 |
container = parts[0]; |
|
502 |
} |
|
503 |
|
|
504 |
var client = new CloudFilesClient(accountInfo); |
|
505 |
var containerInfo=client.GetContainerInfo(accountName, container); |
|
506 |
return containerInfo; |
|
507 |
} |
|
477 | 508 |
} |
478 | 509 |
|
479 | 510 |
|
b/trunk/Pithos.Interfaces/IStatusChecker.cs | ||
---|---|---|
1 | 1 |
using System; |
2 | 2 |
using System.Collections.Generic; |
3 | 3 |
using System.Diagnostics.Contracts; |
4 |
using System.IO; |
|
4 | 5 |
using System.Linq; |
5 | 6 |
using System.Text; |
6 | 7 |
using System.Threading; |
... | ... | |
12 | 13 |
{ |
13 | 14 |
FileOverlayStatus GetFileOverlayStatus(string path); |
14 | 15 |
|
15 |
PithosStatus GetPithosStatus(); |
|
16 |
PithosStatus GetPithosStatus();
|
|
16 | 17 |
|
17 | 18 |
} |
18 | 19 |
|
b/trunk/Pithos.Network/CloudFilesClient.cs | ||
---|---|---|
616 | 616 |
case HttpStatusCode.NoContent: |
617 | 617 |
var containerInfo = new ContainerInfo |
618 | 618 |
{ |
619 |
Account=account, |
|
619 | 620 |
Name = container, |
620 | 621 |
Count = |
621 | 622 |
long.Parse(client.GetHeaderValue("X-Container-Object-Count")), |
622 | 623 |
Bytes = long.Parse(client.GetHeaderValue("X-Container-Bytes-Used")), |
623 | 624 |
BlockHash = client.GetHeaderValue("X-Container-Block-Hash"), |
624 |
BlockSize=int.Parse(client.GetHeaderValue("X-Container-Block-Size")) |
|
625 |
BlockSize=int.Parse(client.GetHeaderValue("X-Container-Block-Size")), |
|
626 |
Last_Modified=client.LastModified |
|
625 | 627 |
}; |
626 | 628 |
return containerInfo; |
627 | 629 |
case HttpStatusCode.NotFound: |
b/trunk/Pithos.Network/ContainerInfo.cs | ||
---|---|---|
1 |
using System; |
|
2 |
|
|
1 | 3 |
namespace Pithos.Network |
2 | 4 |
{ |
3 | 5 |
public class ContainerInfo |
... | ... | |
9 | 11 |
public string BlockHash { get; set; } |
10 | 12 |
public int BlockSize { get; set; } |
11 | 13 |
|
14 |
public DateTime Last_Modified { get; set; } |
|
15 |
|
|
12 | 16 |
public static ContainerInfo Empty=new ContainerInfo(); |
13 | 17 |
} |
14 | 18 |
} |
b/trunk/Pithos.ShellExtensions/FileContext.cs | ||
---|---|---|
2 | 2 |
// This project is open source. Released under the XYZ license |
3 | 3 |
// </copyright> |
4 | 4 |
|
5 |
using System.Linq; |
|
5 | 6 |
using Microsoft.Win32; |
6 | 7 |
|
7 | 8 |
namespace Pithos.ShellExtensions |
... | ... | |
31 | 32 |
{ |
32 | 33 |
get |
33 | 34 |
{ |
34 |
Debug.WriteLine( String.Format("Managed path is {0}\r\n Current Path is {1}", PithosPath, CurrentFile),LogCategories.Shell); |
|
35 |
return CurrentFolder.StartsWith(PithosPath, true, null); |
|
35 |
|
|
36 |
var accountPath=(from account in Settings.Accounts |
|
37 |
where CurrentFile.StartsWith(account.RootPath, StringComparison.InvariantCultureIgnoreCase) |
|
38 |
select account.RootPath).FirstOrDefault(); |
|
39 |
Debug.WriteLine(String.Format("Account path is {0}\r\n Current Path is {1}", accountPath, CurrentFile), LogCategories.Shell); |
|
40 |
return !String.IsNullOrWhiteSpace(accountPath); |
|
36 | 41 |
} |
37 | 42 |
} |
38 | 43 |
|
b/trunk/Pithos.ShellExtensions/Menus/DisplayFlags.cs | ||
---|---|---|
28 | 28 |
File, |
29 | 29 |
|
30 | 30 |
/// <summary> |
31 |
/// Display the item both on container folders |
|
32 |
/// </summary> |
|
33 |
Container, |
|
34 |
/// <summary> |
|
31 | 35 |
/// Display the item both on folders and files |
32 | 36 |
/// </summary> |
33 | 37 |
All |
b/trunk/Pithos.ShellExtensions/Menus/FileContextMenu.cs | ||
---|---|---|
51 | 51 |
DisplayFlags=DisplayFlags.All, |
52 | 52 |
MenuBitmap = _gotoBitmap |
53 | 53 |
}}, |
54 |
/*{"showProperties",new MenuItem{
|
|
55 |
MenuText = "&Pithos File Properties",
|
|
54 |
{"showProperties",new MenuItem{ |
|
55 |
MenuText = "&Pithos Properties", |
|
56 | 56 |
Verb = "showProperties", |
57 | 57 |
VerbCanonicalName = "PITHOSProperties", |
58 |
VerbHelpText = "Pithos File Properties",
|
|
58 |
VerbHelpText = "Pithos Properties", |
|
59 | 59 |
MenuDisplayId = 2, |
60 | 60 |
MenuCommand=OnShowProperties, |
61 |
DisplayFlags=DisplayFlags.File,
|
|
61 |
DisplayFlags=DisplayFlags.All,
|
|
62 | 62 |
MenuBitmap = _propertiesBitmap |
63 |
}},*/
|
|
63 |
}}/*,
|
|
64 | 64 |
{"prevVersions",new MenuItem{ |
65 | 65 |
MenuText = "&Show Previous Versions", |
66 | 66 |
Verb = "prevVersions", |
... | ... | |
70 | 70 |
MenuCommand=OnVerbDisplayFileName, |
71 | 71 |
DisplayFlags=DisplayFlags.File, |
72 | 72 |
MenuBitmap=_versionBitmap |
73 |
}} |
|
73 |
}}*/
|
|
74 | 74 |
}; |
75 | 75 |
|
76 | 76 |
IoC.Current.Compose(this); |
... | ... | |
107 | 107 |
|
108 | 108 |
void OnShowProperties(IntPtr hWnd) |
109 | 109 |
{ |
110 |
|
|
110 |
var filePath = Context.CurrentFile ?? Context.CurrentFolder; |
|
111 |
if (String.IsNullOrWhiteSpace(filePath)) |
|
112 |
{ |
|
113 |
Debug.WriteLine("No current file or folder"); |
|
114 |
return; |
|
115 |
} |
|
116 |
else |
|
117 |
{ |
|
118 |
Debug.WriteLine("Will display properties for {0}",filePath); |
|
119 |
} |
|
120 |
|
|
121 |
using (var client = PithosHost.GetCommandsClient()) |
|
122 |
{ |
|
123 |
client.ShowProperties(Context.CurrentFile); |
|
124 |
} |
|
111 | 125 |
} |
112 | 126 |
|
113 | 127 |
void OnVerbDisplayFileName(IntPtr hWnd) |
b/trunk/Pithos.ShellExtensions/Pithos.ShellExtensions.csproj | ||
---|---|---|
183 | 183 |
<None Include="Service References\PithosService\mex1.xsd"> |
184 | 184 |
<SubType>Designer</SubType> |
185 | 185 |
</None> |
186 |
<None Include="Service References\PithosService\mex2.wsdl" /> |
|
186 | 187 |
<None Include="Service References\PithosService\mex2.xsd"> |
187 | 188 |
<SubType>Designer</SubType> |
188 | 189 |
</None> |
... | ... | |
192 | 193 |
<None Include="Service References\PithosService\mex4.xsd"> |
193 | 194 |
<SubType>Designer</SubType> |
194 | 195 |
</None> |
196 |
<None Include="Service References\PithosService\mex5.xsd"> |
|
197 |
<SubType>Designer</SubType> |
|
198 |
</None> |
|
195 | 199 |
<None Include="Service References\PithosService\StatusService.wsdl" /> |
196 | 200 |
</ItemGroup> |
197 | 201 |
<ItemGroup> |
b/trunk/Pithos.ShellExtensions/PithosHost.cs | ||
---|---|---|
54 | 54 |
|
55 | 55 |
return new SettingsServiceClient(binding, remoteAddress); |
56 | 56 |
} |
57 |
|
|
58 |
public static CommandsServiceClient GetCommandsClient() |
|
59 |
{ |
|
60 |
EnsureHost(); |
|
61 |
|
|
62 |
var binding = new NetNamedPipeBinding(NetNamedPipeSecurityMode.None); |
|
63 |
var remoteAddress = new EndpointAddress("net.pipe://localhost/pithos/commands"); |
|
64 |
|
|
65 |
return new CommandsServiceClient(binding, remoteAddress); |
|
66 |
} |
|
67 |
|
|
68 |
|
|
57 | 69 |
} |
58 | 70 |
} |
b/trunk/Pithos.ShellExtensions/Service References/PithosService/Reference.cs | ||
---|---|---|
1 | 1 |
//------------------------------------------------------------------------------ |
2 | 2 |
// <auto-generated> |
3 | 3 |
// This code was generated by a tool. |
4 |
// Runtime Version:4.0.30319.235
|
|
4 |
// Runtime Version:4.0.30319.488
|
|
5 | 5 |
// |
6 | 6 |
// Changes to this file may cause incorrect behavior and will be lost if |
7 | 7 |
// the code is regenerated. |
... | ... | |
244 | 244 |
base.InvokeAsync(this.onBeginGetSettingsDelegate, null, this.onEndGetSettingsDelegate, this.onGetSettingsCompletedDelegate, userState); |
245 | 245 |
} |
246 | 246 |
} |
247 |
|
|
248 |
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] |
|
249 |
[System.ServiceModel.ServiceContractAttribute(Namespace="http://PITHOS.Client.Commands", ConfigurationName="PithosService.ICommandsService")] |
|
250 |
public interface ICommandsService { |
|
251 |
|
|
252 |
[System.ServiceModel.OperationContractAttribute(Action="http://PITHOS.Client.Commands/ICommandsService/ShowProperties", ReplyAction="http://PITHOS.Client.Commands/ICommandsService/ShowPropertiesResponse")] |
|
253 |
void ShowProperties(string fileName); |
|
254 |
|
|
255 |
[System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://PITHOS.Client.Commands/ICommandsService/ShowProperties", ReplyAction="http://PITHOS.Client.Commands/ICommandsService/ShowPropertiesResponse")] |
|
256 |
System.IAsyncResult BeginShowProperties(string fileName, System.AsyncCallback callback, object asyncState); |
|
257 |
|
|
258 |
void EndShowProperties(System.IAsyncResult result); |
|
259 |
} |
|
260 |
|
|
261 |
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] |
|
262 |
public interface ICommandsServiceChannel : Pithos.ShellExtensions.PithosService.ICommandsService, System.ServiceModel.IClientChannel { |
|
263 |
} |
|
264 |
|
|
265 |
[System.Diagnostics.DebuggerStepThroughAttribute()] |
|
266 |
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] |
|
267 |
public partial class CommandsServiceClient : System.ServiceModel.ClientBase<Pithos.ShellExtensions.PithosService.ICommandsService>, Pithos.ShellExtensions.PithosService.ICommandsService { |
|
268 |
|
|
269 |
private BeginOperationDelegate onBeginShowPropertiesDelegate; |
|
270 |
|
|
271 |
private EndOperationDelegate onEndShowPropertiesDelegate; |
|
272 |
|
|
273 |
private System.Threading.SendOrPostCallback onShowPropertiesCompletedDelegate; |
|
274 |
|
|
275 |
public CommandsServiceClient() { |
|
276 |
} |
|
277 |
|
|
278 |
public CommandsServiceClient(string endpointConfigurationName) : |
|
279 |
base(endpointConfigurationName) { |
|
280 |
} |
|
281 |
|
|
282 |
public CommandsServiceClient(string endpointConfigurationName, string remoteAddress) : |
|
283 |
base(endpointConfigurationName, remoteAddress) { |
|
284 |
} |
|
285 |
|
|
286 |
public CommandsServiceClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : |
|
287 |
base(endpointConfigurationName, remoteAddress) { |
|
288 |
} |
|
289 |
|
|
290 |
public CommandsServiceClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : |
|
291 |
base(binding, remoteAddress) { |
|
292 |
} |
|
293 |
|
|
294 |
public event System.EventHandler<System.ComponentModel.AsyncCompletedEventArgs> ShowPropertiesCompleted; |
|
295 |
|
|
296 |
public void ShowProperties(string fileName) { |
|
297 |
base.Channel.ShowProperties(fileName); |
|
298 |
} |
|
299 |
|
|
300 |
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] |
|
301 |
public System.IAsyncResult BeginShowProperties(string fileName, System.AsyncCallback callback, object asyncState) { |
|
302 |
return base.Channel.BeginShowProperties(fileName, callback, asyncState); |
|
303 |
} |
|
304 |
|
|
305 |
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] |
|
306 |
public void EndShowProperties(System.IAsyncResult result) { |
|
307 |
base.Channel.EndShowProperties(result); |
|
308 |
} |
|
309 |
|
|
310 |
private System.IAsyncResult OnBeginShowProperties(object[] inValues, System.AsyncCallback callback, object asyncState) { |
|
311 |
string fileName = ((string)(inValues[0])); |
|
312 |
return this.BeginShowProperties(fileName, callback, asyncState); |
|
313 |
} |
|
314 |
|
|
315 |
private object[] OnEndShowProperties(System.IAsyncResult result) { |
|
316 |
this.EndShowProperties(result); |
|
317 |
return null; |
|
318 |
} |
|
319 |
|
|
320 |
private void OnShowPropertiesCompleted(object state) { |
|
321 |
if ((this.ShowPropertiesCompleted != null)) { |
|
322 |
InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state)); |
|
323 |
this.ShowPropertiesCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(e.Error, e.Cancelled, e.UserState)); |
|
324 |
} |
|
325 |
} |
|
326 |
|
|
327 |
public void ShowPropertiesAsync(string fileName) { |
|
328 |
this.ShowPropertiesAsync(fileName, null); |
|
329 |
} |
|
330 |
|
|
331 |
public void ShowPropertiesAsync(string fileName, object userState) { |
|
332 |
if ((this.onBeginShowPropertiesDelegate == null)) { |
|
333 |
this.onBeginShowPropertiesDelegate = new BeginOperationDelegate(this.OnBeginShowProperties); |
|
334 |
} |
|
335 |
if ((this.onEndShowPropertiesDelegate == null)) { |
|
336 |
this.onEndShowPropertiesDelegate = new EndOperationDelegate(this.OnEndShowProperties); |
|
337 |
} |
|
338 |
if ((this.onShowPropertiesCompletedDelegate == null)) { |
|
339 |
this.onShowPropertiesCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnShowPropertiesCompleted); |
|
340 |
} |
|
341 |
base.InvokeAsync(this.onBeginShowPropertiesDelegate, new object[] { |
|
342 |
fileName}, this.onEndShowPropertiesDelegate, this.onShowPropertiesCompletedDelegate, userState); |
|
343 |
} |
|
344 |
} |
|
247 | 345 |
} |
b/trunk/Pithos.ShellExtensions/Service References/PithosService/Reference.svcmap | ||
---|---|---|
27 | 27 |
<MetadataFile FileName="mex2.xsd" MetadataType="Schema" ID="779f496b-6495-495b-9fa1-9c38cbe9c010" SourceId="1" SourceUrl="http://localhost:30000/pithos/mex?xsd=xsd2" /> |
28 | 28 |
<MetadataFile FileName="mex3.xsd" MetadataType="Schema" ID="95acec7d-fda4-414b-918b-f868ed51aac4" SourceId="1" SourceUrl="http://localhost:30000/pithos/mex?xsd=xsd3" /> |
29 | 29 |
<MetadataFile FileName="StatusService.wsdl" MetadataType="Wsdl" ID="7a81d2fc-3a1d-410d-97bd-a4f730d1de8a" SourceId="1" SourceUrl="http://localhost:30000/pithos/mex" /> |
30 |
<MetadataFile FileName="mex5.xsd" MetadataType="Schema" ID="37c01dd7-10e7-4ad5-bae9-0a931cf51a9f" SourceId="1" SourceUrl="http://localhost:30000/pithos/mex?xsd=xsd5" /> |
|
30 | 31 |
<MetadataFile FileName="mex1.wsdl" MetadataType="Wsdl" ID="507712dc-9927-4bb2-8278-0e63cda76fde" SourceId="1" SourceUrl="http://localhost:30000/pithos/mex?wsdl=wsdl1" /> |
31 | 32 |
<MetadataFile FileName="mex4.xsd" MetadataType="Schema" ID="a7781e78-500e-4f4f-9d6d-75fc24f64c0e" SourceId="1" SourceUrl="http://localhost:30000/pithos/mex?xsd=xsd4" /> |
33 |
<MetadataFile FileName="mex2.wsdl" MetadataType="Wsdl" ID="6a9fe933-3fff-42b7-872d-ed43e4bce915" SourceId="1" SourceUrl="http://localhost:30000/pithos/mex?wsdl=wsdl2" /> |
|
32 | 34 |
</Metadata> |
33 | 35 |
<Extensions> |
34 | 36 |
<ExtensionFile FileName="configuration91.svcinfo" Name="configuration91.svcinfo" /> |
b/trunk/Pithos.ShellExtensions/Service References/PithosService/StatusService.wsdl | ||
---|---|---|
1 | 1 |
<?xml version="1.0" encoding="utf-8"?> |
2 |
<wsdl:definitions xmlns:wsap="http://schemas.xmlsoap.org/ws/2004/08/addressing/policy" xmlns:wsa10="http://www.w3.org/2005/08/addressing" xmlns:tns="http://tempuri.org/" xmlns:msc="http://schemas.microsoft.com/ws/2005/12/wsdl/contract" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:i0="http://PITHOS.Client.Status" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:i1="http://PITHOS.Client.Settings" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="StatusService" targetNamespace="http://tempuri.org/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> |
|
2 |
<wsdl:definitions xmlns:wsap="http://schemas.xmlsoap.org/ws/2004/08/addressing/policy" xmlns:wsa10="http://www.w3.org/2005/08/addressing" xmlns:tns="http://tempuri.org/" xmlns:msc="http://schemas.microsoft.com/ws/2005/12/wsdl/contract" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:i0="http://PITHOS.Client.Status" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:i1="http://PITHOS.Client.Settings" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:i2="http://PITHOS.Client.Commands" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="StatusService" targetNamespace="http://tempuri.org/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
|
|
3 | 3 |
<wsp:Policy wsu:Id="NetNamedPipeBinding_IStatusService_policy"> |
4 | 4 |
<wsp:ExactlyOne> |
5 | 5 |
<wsp:All> |
... | ... | |
16 | 16 |
</wsp:All> |
17 | 17 |
</wsp:ExactlyOne> |
18 | 18 |
</wsp:Policy> |
19 |
<wsp:Policy wsu:Id="NetNamedPipeBinding_ICommandsService_policy"> |
|
20 |
<wsp:ExactlyOne> |
|
21 |
<wsp:All> |
|
22 |
<msb:BinaryEncoding xmlns:msb="http://schemas.microsoft.com/ws/06/2004/mspolicy/netbinary1" /> |
|
23 |
<wsaw:UsingAddressing /> |
|
24 |
</wsp:All> |
|
25 |
</wsp:ExactlyOne> |
|
26 |
</wsp:Policy> |
|
19 | 27 |
<wsdl:import namespace="http://PITHOS.Client.Status" location="http://localhost:30000/pithos/mex?wsdl=wsdl0" /> |
20 | 28 |
<wsdl:import namespace="http://PITHOS.Client.Settings" location="http://localhost:30000/pithos/mex?wsdl=wsdl1" /> |
29 |
<wsdl:import namespace="http://PITHOS.Client.Commands" location="http://localhost:30000/pithos/mex?wsdl=wsdl2" /> |
|
21 | 30 |
<wsdl:types /> |
22 | 31 |
<wsdl:binding name="NetNamedPipeBinding_IStatusService" type="i0:IStatusService"> |
23 | 32 |
<wsp:PolicyReference URI="#NetNamedPipeBinding_IStatusService_policy" /> |
... | ... | |
45 | 54 |
</wsdl:output> |
46 | 55 |
</wsdl:operation> |
47 | 56 |
</wsdl:binding> |
57 |
<wsdl:binding name="NetNamedPipeBinding_ICommandsService" type="i2:ICommandsService"> |
|
58 |
<wsp:PolicyReference URI="#NetNamedPipeBinding_ICommandsService_policy" /> |
|
59 |
<soap12:binding transport="http://schemas.microsoft.com/soap/named-pipe" /> |
|
60 |
<wsdl:operation name="ShowProperties"> |
|
61 |
<soap12:operation soapAction="http://PITHOS.Client.Commands/ICommandsService/ShowProperties" style="document" /> |
|
62 |
<wsdl:input> |
|
63 |
<soap12:body use="literal" /> |
|
64 |
</wsdl:input> |
|
65 |
<wsdl:output> |
|
66 |
<soap12:body use="literal" /> |
|
67 |
</wsdl:output> |
|
68 |
</wsdl:operation> |
|
69 |
</wsdl:binding> |
|
48 | 70 |
<wsdl:service name="StatusService"> |
49 | 71 |
<wsdl:port name="NetNamedPipeBinding_IStatusService" binding="tns:NetNamedPipeBinding_IStatusService"> |
50 | 72 |
<soap12:address location="net.pipe://localhost/pithos/statuscache" /> |
... | ... | |
58 | 80 |
<wsa10:Address>net.pipe://localhost/pithos/settings</wsa10:Address> |
59 | 81 |
</wsa10:EndpointReference> |
60 | 82 |
</wsdl:port> |
83 |
<wsdl:port name="NetNamedPipeBinding_ICommandsService" binding="tns:NetNamedPipeBinding_ICommandsService"> |
|
84 |
<soap12:address location="net.pipe://localhost/pithos/commands" /> |
|
85 |
<wsa10:EndpointReference> |
|
86 |
<wsa10:Address>net.pipe://localhost/pithos/commands</wsa10:Address> |
|
87 |
</wsa10:EndpointReference> |
|
88 |
</wsdl:port> |
|
61 | 89 |
</wsdl:service> |
62 | 90 |
</wsdl:definitions> |
b/trunk/Pithos.ShellExtensions/Service References/PithosService/configuration.svcinfo | ||
---|---|---|
4 | 4 |
<bindings> |
5 | 5 |
<binding digest="System.ServiceModel.Configuration.NetNamedPipeBindingElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:<?xml version="1.0" encoding="utf-16"?><Data hostNameComparisonMode="StrongWildcard" maxBufferSize="65536" maxConnections="10" name="NetNamedPipeBinding_IStatusService" transactionFlow="false" transactionProtocol="OleTransactions" transferMode="Buffered"><readerQuotas maxArrayLength="16384" maxBytesPerRead="4096" maxDepth="32" maxNameTableCharCount="16384" maxStringContentLength="8192" /><security mode="None"><transport protectionLevel="EncryptAndSign" /></security></Data>" bindingType="netNamedPipeBinding" name="NetNamedPipeBinding_IStatusService" /> |
6 | 6 |
<binding digest="System.ServiceModel.Configuration.NetNamedPipeBindingElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:<?xml version="1.0" encoding="utf-16"?><Data hostNameComparisonMode="StrongWildcard" maxBufferSize="65536" maxConnections="10" name="NetNamedPipeBinding_ISettingsService" transactionFlow="false" transactionProtocol="OleTransactions" transferMode="Buffered"><readerQuotas maxArrayLength="16384" maxBytesPerRead="4096" maxDepth="32" maxNameTableCharCount="16384" maxStringContentLength="8192" /><security mode="None"><transport protectionLevel="EncryptAndSign" /></security></Data>" bindingType="netNamedPipeBinding" name="NetNamedPipeBinding_ISettingsService" /> |
7 |
<binding digest="System.ServiceModel.Configuration.NetNamedPipeBindingElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:<?xml version="1.0" encoding="utf-16"?><Data hostNameComparisonMode="StrongWildcard" maxBufferSize="65536" maxConnections="10" name="NetNamedPipeBinding_ICommandsService" transactionFlow="false" transactionProtocol="OleTransactions" transferMode="Buffered"><readerQuotas maxArrayLength="16384" maxBytesPerRead="4096" maxDepth="32" maxNameTableCharCount="16384" maxStringContentLength="8192" /><security mode="None"><transport protectionLevel="EncryptAndSign" /></security></Data>" bindingType="netNamedPipeBinding" name="NetNamedPipeBinding_ICommandsService" /> |
|
7 | 8 |
</bindings> |
8 | 9 |
<endpoints> |
9 | 10 |
<endpoint normalizedDigest="<?xml version="1.0" encoding="utf-16"?><Data address="net.pipe://localhost/pithos/statuscache" binding="netNamedPipeBinding" bindingConfiguration="NetNamedPipeBinding_IStatusService" contract="PithosService.IStatusService" name="NetNamedPipeBinding_IStatusService" />" digest="<?xml version="1.0" encoding="utf-16"?><Data address="net.pipe://localhost/pithos/statuscache" binding="netNamedPipeBinding" bindingConfiguration="NetNamedPipeBinding_IStatusService" contract="PithosService.IStatusService" name="NetNamedPipeBinding_IStatusService" />" contractName="PithosService.IStatusService" name="NetNamedPipeBinding_IStatusService" /> |
10 | 11 |
<endpoint normalizedDigest="<?xml version="1.0" encoding="utf-16"?><Data address="net.pipe://localhost/pithos/settings" binding="netNamedPipeBinding" bindingConfiguration="NetNamedPipeBinding_ISettingsService" contract="PithosService.ISettingsService" name="NetNamedPipeBinding_ISettingsService" />" digest="<?xml version="1.0" encoding="utf-16"?><Data address="net.pipe://localhost/pithos/settings" binding="netNamedPipeBinding" bindingConfiguration="NetNamedPipeBinding_ISettingsService" contract="PithosService.ISettingsService" name="NetNamedPipeBinding_ISettingsService" />" contractName="PithosService.ISettingsService" name="NetNamedPipeBinding_ISettingsService" /> |
12 |
<endpoint normalizedDigest="<?xml version="1.0" encoding="utf-16"?><Data address="net.pipe://localhost/pithos/commands" binding="netNamedPipeBinding" bindingConfiguration="NetNamedPipeBinding_ICommandsService" contract="PithosService.ICommandsService" name="NetNamedPipeBinding_ICommandsService" />" digest="<?xml version="1.0" encoding="utf-16"?><Data address="net.pipe://localhost/pithos/commands" binding="netNamedPipeBinding" bindingConfiguration="NetNamedPipeBinding_ICommandsService" contract="PithosService.ICommandsService" name="NetNamedPipeBinding_ICommandsService" />" contractName="PithosService.ICommandsService" name="NetNamedPipeBinding_ICommandsService" /> |
|
11 | 13 |
</endpoints> |
12 | 14 |
</configurationSnapshot> |
b/trunk/Pithos.ShellExtensions/Service References/PithosService/configuration91.svcinfo | ||
---|---|---|
1 | 1 |
<?xml version="1.0" encoding="utf-8"?> |
2 |
<SavedWcfConfigurationInformation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="9.1" CheckSum="oXFbhh/FL3s+zC86TD/5JLzGqUw=">
|
|
2 |
<SavedWcfConfigurationInformation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="9.1" CheckSum="mHr9riLu0k/55JC5NK6Fa8CDlPU=">
|
|
3 | 3 |
<bindingConfigurations> |
4 | 4 |
<bindingConfiguration bindingType="netNamedPipeBinding" name="NetNamedPipeBinding_IStatusService"> |
5 | 5 |
<properties> |
... | ... | |
147 | 147 |
</property> |
148 | 148 |
</properties> |
149 | 149 |
</bindingConfiguration> |
150 |
<bindingConfiguration bindingType="netNamedPipeBinding" name="NetNamedPipeBinding_ICommandsService"> |
|
151 |
<properties> |
|
152 |
<property path="/name" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
|
153 |
<serializedValue>NetNamedPipeBinding_ICommandsService</serializedValue> |
|
154 |
</property> |
|
155 |
<property path="/closeTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
|
156 |
<serializedValue>00:01:00</serializedValue> |
|
157 |
</property> |
|
158 |
<property path="/openTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
|
159 |
<serializedValue>00:01:00</serializedValue> |
|
160 |
</property> |
|
161 |
<property path="/receiveTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
|
162 |
<serializedValue>00:10:00</serializedValue> |
|
163 |
</property> |
|
164 |
<property path="/sendTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
|
165 |
<serializedValue>00:01:00</serializedValue> |
|
166 |
</property> |
|
167 |
<property path="/transactionFlow" isComplexType="false" isExplicitlyDefined="true" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
|
168 |
<serializedValue>False</serializedValue> |
|
169 |
</property> |
|
170 |
<property path="/transferMode" isComplexType="false" isExplicitlyDefined="true" clrType="System.ServiceModel.TransferMode, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
|
171 |
<serializedValue>Buffered</serializedValue> |
|
172 |
</property> |
|
173 |
<property path="/transactionProtocol" isComplexType="false" isExplicitlyDefined="true" clrType="System.ServiceModel.TransactionProtocol, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
|
174 |
<serializedValue>OleTransactions</serializedValue> |
|
175 |
</property> |
|
176 |
<property path="/hostNameComparisonMode" isComplexType="false" isExplicitlyDefined="true" clrType="System.ServiceModel.HostNameComparisonMode, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
|
177 |
<serializedValue>StrongWildcard</serializedValue> |
|
178 |
</property> |
|
179 |
<property path="/maxBufferPoolSize" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int64, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
|
180 |
<serializedValue>524288</serializedValue> |
|
181 |
</property> |
|
182 |
<property path="/maxBufferSize" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
|
183 |
<serializedValue>65536</serializedValue> |
|
184 |
</property> |
|
185 |
<property path="/maxConnections" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
|
186 |
<serializedValue>10</serializedValue> |
|
187 |
</property> |
|
188 |
<property path="/maxReceivedMessageSize" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int64, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
|
189 |
<serializedValue>65536</serializedValue> |
|
190 |
</property> |
|
191 |
<property path="/readerQuotas" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
|
192 |
<serializedValue>System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement</serializedValue> |
|
193 |
</property> |
|
194 |
<property path="/readerQuotas/maxDepth" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
|
195 |
<serializedValue>32</serializedValue> |
|
196 |
</property> |
|
197 |
<property path="/readerQuotas/maxStringContentLength" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
|
198 |
<serializedValue>8192</serializedValue> |
|
199 |
</property> |
|
200 |
<property path="/readerQuotas/maxArrayLength" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
|
201 |
<serializedValue>16384</serializedValue> |
|
202 |
</property> |
|
203 |
<property path="/readerQuotas/maxBytesPerRead" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
|
204 |
<serializedValue>4096</serializedValue> |
|
205 |
</property> |
|
206 |
<property path="/readerQuotas/maxNameTableCharCount" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
|
207 |
<serializedValue>16384</serializedValue> |
|
208 |
</property> |
|
209 |
<property path="/security" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.NetNamedPipeSecurityElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
|
210 |
<serializedValue>System.ServiceModel.Configuration.NetNamedPipeSecurityElement</serializedValue> |
|
211 |
</property> |
|
212 |
<property path="/security/mode" isComplexType="false" isExplicitlyDefined="true" clrType="System.ServiceModel.NetNamedPipeSecurityMode, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
|
213 |
<serializedValue>None</serializedValue> |
|
214 |
</property> |
|
215 |
<property path="/security/transport" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.NamedPipeTransportSecurityElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
|
216 |
<serializedValue>System.ServiceModel.Configuration.NamedPipeTransportSecurityElement</serializedValue> |
|
217 |
</property> |
|
218 |
<property path="/security/transport/protectionLevel" isComplexType="false" isExplicitlyDefined="true" clrType="System.Net.Security.ProtectionLevel, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
|
219 |
<serializedValue>EncryptAndSign</serializedValue> |
|
220 |
</property> |
|
221 |
</properties> |
|
222 |
</bindingConfiguration> |
|
150 | 223 |
</bindingConfigurations> |
151 | 224 |
<endpoints> |
152 | 225 |
<endpoint name="NetNamedPipeBinding_IStatusService" contract="PithosService.IStatusService" bindingType="netNamedPipeBinding" address="net.pipe://localhost/pithos/statuscache" bindingConfiguration="NetNamedPipeBinding_IStatusService"> |
... | ... | |
319 | 392 |
</property> |
320 | 393 |
</properties> |
321 | 394 |
</endpoint> |
395 |
<endpoint name="NetNamedPipeBinding_ICommandsService" contract="PithosService.ICommandsService" bindingType="netNamedPipeBinding" address="net.pipe://localhost/pithos/commands" bindingConfiguration="NetNamedPipeBinding_ICommandsService"> |
|
396 |
<properties> |
|
397 |
<property path="/address" isComplexType="false" isExplicitlyDefined="true" clrType="System.Uri, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
|
398 |
<serializedValue>net.pipe://localhost/pithos/commands</serializedValue> |
|
399 |
</property> |
|
400 |
<property path="/behaviorConfiguration" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
|
401 |
<serializedValue /> |
|
402 |
</property> |
|
403 |
<property path="/binding" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
|
404 |
<serializedValue>netNamedPipeBinding</serializedValue> |
|
405 |
</property> |
|
406 |
<property path="/bindingConfiguration" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
|
407 |
<serializedValue>NetNamedPipeBinding_ICommandsService</serializedValue> |
|
408 |
</property> |
|
409 |
<property path="/contract" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
|
410 |
<serializedValue>PithosService.ICommandsService</serializedValue> |
|
411 |
</property> |
|
412 |
<property path="/headers" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.AddressHeaderCollectionElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
|
413 |
<serializedValue>System.ServiceModel.Configuration.AddressHeaderCollectionElement</serializedValue> |
|
414 |
</property> |
|
415 |
<property path="/headers/headers" isComplexType="false" isExplicitlyDefined="true" clrType="System.ServiceModel.Channels.AddressHeaderCollection, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
|
416 |
<serializedValue><Header /></serializedValue> |
|
417 |
</property> |
|
418 |
<property path="/identity" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.IdentityElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
|
419 |
<serializedValue>System.ServiceModel.Configuration.IdentityElement</serializedValue> |
|
420 |
</property> |
|
421 |
<property path="/identity/userPrincipalName" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.UserPrincipalNameElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
|
422 |
<serializedValue>System.ServiceModel.Configuration.UserPrincipalNameElement</serializedValue> |
|
423 |
</property> |
|
424 |
<property path="/identity/userPrincipalName/value" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
|
425 |
<serializedValue /> |
|
426 |
</property> |
|
427 |
<property path="/identity/servicePrincipalName" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.ServicePrincipalNameElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
|
428 |
<serializedValue>System.ServiceModel.Configuration.ServicePrincipalNameElement</serializedValue> |
|
429 |
</property> |
|
430 |
<property path="/identity/servicePrincipalName/value" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
|
431 |
<serializedValue /> |
|
432 |
</property> |
|
433 |
<property path="/identity/dns" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.DnsElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
|
434 |
<serializedValue>System.ServiceModel.Configuration.DnsElement</serializedValue> |
|
435 |
</property> |
|
436 |
<property path="/identity/dns/value" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
|
437 |
<serializedValue /> |
|
438 |
</property> |
|
439 |
<property path="/identity/rsa" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.RsaElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
|
440 |
<serializedValue>System.ServiceModel.Configuration.RsaElement</serializedValue> |
|
441 |
</property> |
|
442 |
<property path="/identity/rsa/value" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
|
443 |
<serializedValue /> |
|
444 |
</property> |
|
445 |
<property path="/identity/certificate" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.CertificateElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
|
446 |
<serializedValue>System.ServiceModel.Configuration.CertificateElement</serializedValue> |
|
447 |
</property> |
|
448 |
<property path="/identity/certificate/encodedValue" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
|
449 |
<serializedValue /> |
|
450 |
</property> |
|
451 |
<property path="/identity/certificateReference" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.CertificateReferenceElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
|
452 |
<serializedValue>System.ServiceModel.Configuration.CertificateReferenceElement</serializedValue> |
|
453 |
</property> |
|
454 |
<property path="/identity/certificateReference/storeName" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Cryptography.X509Certificates.StoreName, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
|
455 |
<serializedValue>My</serializedValue> |
|
456 |
</property> |
|
457 |
<property path="/identity/certificateReference/storeLocation" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Cryptography.X509Certificates.StoreLocation, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
|
458 |
<serializedValue>LocalMachine</serializedValue> |
|
459 |
</property> |
|
460 |
<property path="/identity/certificateReference/x509FindType" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Cryptography.X509Certificates.X509FindType, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
|
461 |
<serializedValue>FindBySubjectDistinguishedName</serializedValue> |
|
462 |
</property> |
|
463 |
<property path="/identity/certificateReference/findValue" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
|
464 |
<serializedValue /> |
|
465 |
</property> |
|
466 |
<property path="/identity/certificateReference/isChainIncluded" isComplexType="false" isExplicitlyDefined="false" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
|
467 |
<serializedValue>False</serializedValue> |
|
468 |
</property> |
|
469 |
<property path="/name" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
|
470 |
<serializedValue>NetNamedPipeBinding_ICommandsService</serializedValue> |
|
471 |
</property> |
|
472 |
<property path="/kind" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
|
473 |
<serializedValue /> |
|
474 |
</property> |
|
475 |
<property path="/endpointConfiguration" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
|
476 |
<serializedValue /> |
|
477 |
</property> |
|
478 |
</properties> |
|
479 |
</endpoint> |
|
322 | 480 |
</endpoints> |
323 | 481 |
</SavedWcfConfigurationInformation> |
b/trunk/Pithos.ShellExtensions/Service References/PithosService/mex2.wsdl | ||
---|---|---|
1 |
<?xml version="1.0" encoding="utf-8"?> |
|
2 |
<wsdl:definitions xmlns:wsap="http://schemas.xmlsoap.org/ws/2004/08/addressing/policy" xmlns:wsa10="http://www.w3.org/2005/08/addressing" xmlns:tns="http://PITHOS.Client.Commands" xmlns:msc="http://schemas.microsoft.com/ws/2005/12/wsdl/contract" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://PITHOS.Client.Commands" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> |
|
3 |
<wsdl:types> |
|
4 |
<xsd:schema targetNamespace="http://PITHOS.Client.Commands/Imports"> |
|
5 |
<xsd:import schemaLocation="http://localhost:30000/pithos/mex?xsd=xsd5" namespace="http://PITHOS.Client.Commands" /> |
|
6 |
<xsd:import schemaLocation="http://localhost:30000/pithos/mex?xsd=xsd0" namespace="http://PITHOS.Client.Status" /> |
|
7 |
<xsd:import schemaLocation="http://localhost:30000/pithos/mex?xsd=xsd1" namespace="http://schemas.microsoft.com/2003/10/Serialization/" /> |
|
8 |
<xsd:import schemaLocation="http://localhost:30000/pithos/mex?xsd=xsd2" namespace="http://schemas.datacontract.org/2004/07/Pithos.Interfaces" /> |
|
9 |
<xsd:import schemaLocation="http://localhost:30000/pithos/mex?xsd=xsd3" namespace="http://PITHOS.Client.Settings" /> |
|
10 |
<xsd:import schemaLocation="http://localhost:30000/pithos/mex?xsd=xsd4" namespace="http://schemas.microsoft.com/2003/10/Serialization/Arrays" /> |
|
11 |
</xsd:schema> |
|
12 |
</wsdl:types> |
|
13 |
<wsdl:message name="ICommandsService_ShowProperties_InputMessage"> |
|
14 |
<wsdl:part name="parameters" element="tns:ShowProperties" /> |
|
15 |
</wsdl:message> |
|
16 |
<wsdl:message name="ICommandsService_ShowProperties_OutputMessage"> |
|
17 |
<wsdl:part name="parameters" element="tns:ShowPropertiesResponse" /> |
|
18 |
</wsdl:message> |
|
19 |
<wsdl:portType name="ICommandsService"> |
|
20 |
<wsdl:operation name="ShowProperties"> |
|
21 |
<wsdl:input wsaw:Action="http://PITHOS.Client.Commands/ICommandsService/ShowProperties" message="tns:ICommandsService_ShowProperties_InputMessage" /> |
|
22 |
<wsdl:output wsaw:Action="http://PITHOS.Client.Commands/ICommandsService/ShowPropertiesResponse" message="tns:ICommandsService_ShowProperties_OutputMessage" /> |
|
23 |
</wsdl:operation> |
|
24 |
</wsdl:portType> |
|
25 |
</wsdl:definitions> |
b/trunk/Pithos.ShellExtensions/Service References/PithosService/mex2.xsd | ||
---|---|---|
39 | 39 |
</xs:appinfo> |
40 | 40 |
</xs:annotation> |
41 | 41 |
</xs:enumeration> |
42 |
<xs:enumeration value="Synch"> |
|
43 |
<xs:annotation> |
|
44 |
<xs:appinfo> |
|
45 |
<EnumerationValue xmlns="http://schemas.microsoft.com/2003/10/Serialization/">3</EnumerationValue> |
|
46 |
</xs:appinfo> |
|
47 |
</xs:annotation> |
|
48 |
</xs:enumeration> |
|
49 | 42 |
</xs:restriction> |
50 | 43 |
</xs:simpleType> |
51 | 44 |
<xs:element name="FileOverlayStatus" nillable="true" type="tns:FileOverlayStatus" /> |
... | ... | |
80 | 73 |
<xs:element minOccurs="0" name="AccountName" nillable="true" type="xs:string" /> |
81 | 74 |
<xs:element minOccurs="0" name="ApiKey" nillable="true" type="xs:string" /> |
82 | 75 |
<xs:element minOccurs="0" name="IsActive" type="xs:boolean" /> |
76 |
<xs:element minOccurs="0" name="RootPath" nillable="true" type="xs:string" /> |
|
83 | 77 |
<xs:element xmlns:q1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" minOccurs="0" name="SelectiveFolders" nillable="true" type="q1:ArrayOfanyType" /> |
78 |
<xs:element minOccurs="0" name="UsePithos" type="xs:boolean" /> |
|
84 | 79 |
</xs:sequence> |
85 | 80 |
</xs:complexType> |
86 | 81 |
<xs:element name="AccountSettings" nillable="true" type="tns:AccountSettings" /> |
b/trunk/Pithos.ShellExtensions/Service References/PithosService/mex5.xsd | ||
---|---|---|
1 |
<?xml version="1.0" encoding="utf-8"?> |
|
2 |
<xs:schema xmlns:tns="http://PITHOS.Client.Commands" elementFormDefault="qualified" targetNamespace="http://PITHOS.Client.Commands" xmlns:xs="http://www.w3.org/2001/XMLSchema"> |
|
3 |
<xs:element name="ShowProperties"> |
|
4 |
<xs:complexType> |
|
5 |
<xs:sequence> |
|
6 |
<xs:element minOccurs="0" name="fileName" nillable="true" type="xs:string" /> |
|
7 |
</xs:sequence> |
|
8 |
</xs:complexType> |
|
9 |
</xs:element> |
|
10 |
<xs:element name="ShowPropertiesResponse"> |
|
11 |
<xs:complexType> |
|
12 |
<xs:sequence /> |
|
13 |
</xs:complexType> |
|
14 |
</xs:element> |
|
15 |
</xs:schema> |
b/trunk/Pithos.ShellExtensions/app.config | ||
---|---|---|
3 | 3 |
<system.serviceModel> |
Also available in: Unified diff