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:&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data hostNameComparisonMode=&quot;StrongWildcard&quot; maxBufferSize=&quot;65536&quot; maxConnections=&quot;10&quot; name=&quot;NetNamedPipeBinding_IStatusService&quot; transactionFlow=&quot;false&quot; transactionProtocol=&quot;OleTransactions&quot; transferMode=&quot;Buffered&quot;&gt;&lt;readerQuotas maxArrayLength=&quot;16384&quot; maxBytesPerRead=&quot;4096&quot; maxDepth=&quot;32&quot; maxNameTableCharCount=&quot;16384&quot; maxStringContentLength=&quot;8192&quot; /&gt;&lt;security mode=&quot;None&quot;&gt;&lt;transport protectionLevel=&quot;EncryptAndSign&quot; /&gt;&lt;/security&gt;&lt;/Data&gt;" bindingType="netNamedPipeBinding" name="NetNamedPipeBinding_IStatusService" />
6 6
    <binding digest="System.ServiceModel.Configuration.NetNamedPipeBindingElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data hostNameComparisonMode=&quot;StrongWildcard&quot; maxBufferSize=&quot;65536&quot; maxConnections=&quot;10&quot; name=&quot;NetNamedPipeBinding_ISettingsService&quot; transactionFlow=&quot;false&quot; transactionProtocol=&quot;OleTransactions&quot; transferMode=&quot;Buffered&quot;&gt;&lt;readerQuotas maxArrayLength=&quot;16384&quot; maxBytesPerRead=&quot;4096&quot; maxDepth=&quot;32&quot; maxNameTableCharCount=&quot;16384&quot; maxStringContentLength=&quot;8192&quot; /&gt;&lt;security mode=&quot;None&quot;&gt;&lt;transport protectionLevel=&quot;EncryptAndSign&quot; /&gt;&lt;/security&gt;&lt;/Data&gt;" bindingType="netNamedPipeBinding" name="NetNamedPipeBinding_ISettingsService" />
7
    <binding digest="System.ServiceModel.Configuration.NetNamedPipeBindingElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data hostNameComparisonMode=&quot;StrongWildcard&quot; maxBufferSize=&quot;65536&quot; maxConnections=&quot;10&quot; name=&quot;NetNamedPipeBinding_ICommandsService&quot; transactionFlow=&quot;false&quot; transactionProtocol=&quot;OleTransactions&quot; transferMode=&quot;Buffered&quot;&gt;&lt;readerQuotas maxArrayLength=&quot;16384&quot; maxBytesPerRead=&quot;4096&quot; maxDepth=&quot;32&quot; maxNameTableCharCount=&quot;16384&quot; maxStringContentLength=&quot;8192&quot; /&gt;&lt;security mode=&quot;None&quot;&gt;&lt;transport protectionLevel=&quot;EncryptAndSign&quot; /&gt;&lt;/security&gt;&lt;/Data&gt;" bindingType="netNamedPipeBinding" name="NetNamedPipeBinding_ICommandsService" />
7 8
  </bindings>
8 9
  <endpoints>
9 10
    <endpoint normalizedDigest="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data address=&quot;net.pipe://localhost/pithos/statuscache&quot; binding=&quot;netNamedPipeBinding&quot; bindingConfiguration=&quot;NetNamedPipeBinding_IStatusService&quot; contract=&quot;PithosService.IStatusService&quot; name=&quot;NetNamedPipeBinding_IStatusService&quot; /&gt;" digest="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data address=&quot;net.pipe://localhost/pithos/statuscache&quot; binding=&quot;netNamedPipeBinding&quot; bindingConfiguration=&quot;NetNamedPipeBinding_IStatusService&quot; contract=&quot;PithosService.IStatusService&quot; name=&quot;NetNamedPipeBinding_IStatusService&quot; /&gt;" contractName="PithosService.IStatusService" name="NetNamedPipeBinding_IStatusService" />
10 11
    <endpoint normalizedDigest="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data address=&quot;net.pipe://localhost/pithos/settings&quot; binding=&quot;netNamedPipeBinding&quot; bindingConfiguration=&quot;NetNamedPipeBinding_ISettingsService&quot; contract=&quot;PithosService.ISettingsService&quot; name=&quot;NetNamedPipeBinding_ISettingsService&quot; /&gt;" digest="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data address=&quot;net.pipe://localhost/pithos/settings&quot; binding=&quot;netNamedPipeBinding&quot; bindingConfiguration=&quot;NetNamedPipeBinding_ISettingsService&quot; contract=&quot;PithosService.ISettingsService&quot; name=&quot;NetNamedPipeBinding_ISettingsService&quot; /&gt;" contractName="PithosService.ISettingsService" name="NetNamedPipeBinding_ISettingsService" />
12
    <endpoint normalizedDigest="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data address=&quot;net.pipe://localhost/pithos/commands&quot; binding=&quot;netNamedPipeBinding&quot; bindingConfiguration=&quot;NetNamedPipeBinding_ICommandsService&quot; contract=&quot;PithosService.ICommandsService&quot; name=&quot;NetNamedPipeBinding_ICommandsService&quot; /&gt;" digest="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data address=&quot;net.pipe://localhost/pithos/commands&quot; binding=&quot;netNamedPipeBinding&quot; bindingConfiguration=&quot;NetNamedPipeBinding_ICommandsService&quot; contract=&quot;PithosService.ICommandsService&quot; name=&quot;NetNamedPipeBinding_ICommandsService&quot; /&gt;" 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>&lt;Header /&gt;</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>
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff