Added check for startup option
authorPanagiotis Kanavos <pkanavos@gmail.com>
Mon, 23 Jan 2012 18:54:46 +0000 (20:54 +0200)
committerPanagiotis Kanavos <pkanavos@gmail.com>
Mon, 23 Jan 2012 19:00:13 +0000 (21:00 +0200)
Added Okeanos folder creation

trunk/Pithos.Client.WPF/App.xaml.cs
trunk/Pithos.Client.WPF/Configuration/PithosSettings.cs
trunk/Pithos.Client.WPF/Preferences/AddAccountViewModel.cs
trunk/Pithos.Client.WPF/Preferences/PreferencesView.xaml
trunk/Pithos.Client.WPF/Preferences/PreferencesViewModel.cs
trunk/Pithos.Client.WPF/Shell/ShellView.xaml
trunk/Pithos.Client.WPF/Shell/ShellViewModel.cs
trunk/Pithos.Core/Agents/NetworkAgent.cs
trunk/Pithos.Setup.x64/Pithos.Setup.x64.vdproj
trunk/Pithos.Setup.x86/Pithos.Setup.x86.vdproj

index 7ffbacb..311149f 100644 (file)
@@ -12,6 +12,7 @@ using System.Windows;
 using Caliburn.Micro;
 using Microsoft.Win32;
 using Caliburn.Micro.Logging;
+using Pithos.Client.WPF.Properties;
 
 
 namespace Pithos.Client.WPF
@@ -34,6 +35,15 @@ namespace Pithos.Client.WPF
             InitializeComponent();            
         }
 
+        protected override void OnStartup(StartupEventArgs e)
+        {            
+            if (!Settings.Default.StartOnSystemStartup && e.Args.Contains("startup"))
+            {
+                this.Shutdown();
+            }
+            base.OnStartup(e);
+        }
+
         private void OnUnobservedException(object sender, UnobservedTaskExceptionEventArgs e)
         {            
             var messages=new List<UserMessage>();
index eb16a78..12cd046 100644 (file)
@@ -186,6 +186,15 @@ namespace Pithos.Client.WPF.Configuration
                 _settings.PollingInterval = value;
             }
         }
+
+        public bool StartOnSystemStartup
+        {
+            get { return _settings.StartOnSystemStartup; }
+            set
+            {
+                _settings.StartOnSystemStartup = value;
+            }
+        }
 /*
         public override IEnumerable<string> GetDynamicMemberNames()
         {
index 174641c..24503a7 100644 (file)
@@ -4,6 +4,7 @@ using System.ComponentModel;
 using System.ComponentModel.Composition;
 using System.IO;
 using System.Linq;
+using System.Net;
 using System.Text;
 using System.Threading.Tasks;
 using System.Windows;
@@ -136,7 +137,7 @@ namespace Pithos.Client.WPF.Preferences
 
         public void SelectAccount()
         {
-            using (var dlg = new FolderBrowserDialog())
+            using (var dlg = new FolderBrowserDialog{Description="Please select a folder to store local files. Pithos will create a new folder called Okeanos under the folder you specify."})
             {
                 //Ask the user to select a folder
                 //Note: We need a parent window here, which we retrieve with GetView            
@@ -257,12 +258,14 @@ namespace Pithos.Client.WPF.Preferences
             
         }
 
+        public WebProxy Proxy { get; set; }
+
         public async void TestAccount()
         {
             try
             {
                 SetBusy("Validating Credentials", "");
-                var client = new CloudFilesClient(AccountName, Token) { AuthenticationUrl = CurrentServer };
+                var client = new CloudFilesClient(AccountName, Token) { AuthenticationUrl = CurrentServer,Proxy=Proxy };                
                 var containers = await TaskEx.Run(() =>
                                                       {
                                                           client.Authenticate();
index 47d0510..194ad87 100644 (file)
@@ -46,7 +46,7 @@
                 <GroupBox  Height="66" VerticalAlignment="Top" Name="groupBox1" Margin="10,5">
                     <StackPanel>
                         <CheckBox Content="Show Desktop Notifications" Height="16" Name="Settings_ShowDesktopNotifications" Margin="5,10,5,0" />
-                        <CheckBox Content="Start on System Startup" Height="16" Name="StartOnSystemStartup" Margin="5,5,5,0" />
+                        <CheckBox Content="Start on System Startup" Height="16" Name="Settings_StartOnSystemStartup" Margin="5,5,5,0" />
                     </StackPanel>
                 </GroupBox>
             </TabItem>
index 772c9ab..b2f86a2 100644 (file)
@@ -39,6 +39,7 @@
 using System.Collections.Concurrent;
 using System.ComponentModel.Composition;
 using System.IO;
+using System.Net;
 using System.Reflection;
 using System.Windows;
 using System.Windows.Forms;
@@ -214,7 +215,7 @@ namespace Pithos.Client.WPF
         private void DoSave()
         {
             Settings.Save();
-            SetStartupMode();
+            //SetStartupMode();
 
 
             foreach (var account in Settings.Accounts)
@@ -262,17 +263,47 @@ namespace Pithos.Client.WPF
             }
         }
 */
+
+        private WebProxy ProxyFromSettings()
+        {
+            if (Settings.UseManualProxy)
+            {
+                var proxy = new WebProxy(Settings.ProxyServer, Settings.ProxyPort);
+                //If the proxy requires specific authentication settings, use them
+                if (Settings.ProxyAuthentication)
+                {
+                    proxy.Credentials = new NetworkCredential(Settings.ProxyUsername, Settings.ProxyPassword, Settings.ProxyDomain);
+                }
+                //Otherwise, if there are generic authentication settings, use them
+                if (!String.IsNullOrWhiteSpace(CredentialCache.DefaultNetworkCredentials.UserName))
+                {
+                    proxy.Credentials = CredentialCache.DefaultNetworkCredentials;
+                }
+                return proxy;
+            }
+            return null;
+        }
+
        public void AddAccount()
        {
-           var wizard = new AddAccountViewModel();
+           var wizard = new AddAccountViewModel {Proxy = ProxyFromSettings()};
            if (_windowManager.ShowDialog(wizard) == true)
            {
+               string selectedPath = wizard.AccountPath;
+               var initialRootPath = Path.Combine(selectedPath, "Okeanos");
+               var actualRootPath= initialRootPath;
+               int attempt = 1;
+               while (Directory.Exists(actualRootPath) || File.Exists(actualRootPath))
+               {
+                   actualRootPath = String.Format("{0} {1}", initialRootPath,attempt++);
+               }
+
                var newAccount = new AccountSettings
                                     {
                                         AccountName = wizard.AccountName,
                                         ServerUrl=wizard.CurrentServer,
                                         ApiKey=wizard.Token,
-                                        RootPath=wizard.AccountPath,
+                                        RootPath = actualRootPath,
                                         IsActive=wizard.IsAccountActive
                                     };
                Settings.Accounts.Add(newAccount);
index 74d07be..b94e7bc 100644 (file)
@@ -64,7 +64,7 @@
                             </DataTemplate>
                         </MenuItem.ItemTemplate>
                     </MenuItem>
-                    <MenuItem Header="Synch Now" x:Name="SynchNow"/>
+                    <MenuItem Header="Synch Now" x:Name="SynchNow" cal:Message.Attach="SynchNow"/>
                     <Separator  />                    
                     <MenuItem Header="Usage" x:Name="Usages" ItemsSource="{Binding Accounts}">
                         <MenuItem.ItemTemplate>
index 55cbd44..1c06345 100644 (file)
@@ -17,6 +17,7 @@ using Pithos.Client.WPF.SelectiveSynch;
 using Pithos.Client.WPF.Services;
 using Pithos.Client.WPF.Shell;
 using Pithos.Core;
+using Pithos.Core.Agents;
 using Pithos.Interfaces;
 using System;
 using System.Collections.Generic;
@@ -406,7 +407,10 @@ namespace Pithos.Client.WPF {
                }
 
         public void SynchNow()
-        {}
+        {
+            var agent = IoC.Get<NetworkAgent>();
+            agent.SynchNow();
+        }
 
                public ObjectInfo RefreshObjectInfo(ObjectInfo currentInfo)
                {
index 3c688ac..841984f 100644 (file)
@@ -80,6 +80,8 @@ namespace Pithos.Core.Agents
         public IPithosSettings Settings { get; set; }
 
         private bool _firstPoll = true;
+        private TaskCompletionSource<bool> _tcs;
+
         public void Start()
         {
             _firstPoll = true;
@@ -430,12 +432,28 @@ namespace Pithos.Core.Agents
             }
         }*/
 
-        
+        public void SynchNow()
+        {             
+            if (_tcs!=null)
+                _tcs.SetResult(true);
+            else
+            {
+                //TODO: This may be OK for testing purposes, but we have no guarantee that it will
+                //work properly in production
+                PollRemoteFiles(repeat:false);
+            }
+        }
 
         //Remote files are polled periodically. Any changes are processed
-        public async Task PollRemoteFiles(DateTime? since = null)
-        {            
-            await TaskEx.Delay(TimeSpan.FromSeconds(Settings.PollingInterval),_agent.CancellationToken);
+        public async Task PollRemoteFiles(DateTime? since = null,bool repeat=true)
+        {
+
+            _tcs = new TaskCompletionSource<bool>();
+            var wait = TaskEx.Delay(TimeSpan.FromSeconds(Settings.PollingInterval), _agent.CancellationToken);
+            var signaledTask=await TaskEx.WhenAny(_tcs.Task,wait);
+            //If polling is signalled by SynchNow, ignore the since tag
+            if (signaledTask is Task<bool>)
+                since = null;
 
             using (log4net.ThreadContext.Stacks["Retrieve Remote"].Push("All accounts"))
             {
@@ -452,7 +470,8 @@ namespace Pithos.Core.Agents
                     await TaskEx.WhenAll(tasks.ToList());
 
                     _firstPoll = false;
-                    PollRemoteFiles(nextSince);
+                    if (repeat)
+                        PollRemoteFiles(nextSince);
                 }
                 catch (Exception ex)
                 {
index 663aa93..8086629 100644 (file)
         }
         "Entry"
         {
+        "MsmKey" = "8:_263B85E7C62D146E20358A3F08BBC740"
+        "OwnerKey" = "8:_A611766CD2793378FFAB2F3063F81496"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_263B85E7C62D146E20358A3F08BBC740"
+        "OwnerKey" = "8:_B2BC59C383DD4639A31E6E2E6924F134"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_263B85E7C62D146E20358A3F08BBC740"
+        "OwnerKey" = "8:_EBAF62F0335F4918AB23EDA708507D1F"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_263B85E7C62D146E20358A3F08BBC740"
+        "OwnerKey" = "8:_11BDAAF760654D3792A432B5EB874364"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
         "MsmKey" = "8:_284BED2B665647A5BCB69FFB3C9E6052"
         "OwnerKey" = "8:_UNDEFINED"
         "MsmSig" = "8:_UNDEFINED"
         "Entry"
         {
         "MsmKey" = "8:_392252B203784D91A39016FC82CD5887"
+        "OwnerKey" = "8:_B2BC59C383DD4639A31E6E2E6924F134"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_392252B203784D91A39016FC82CD5887"
         "OwnerKey" = "8:_EBAF62F0335F4918AB23EDA708507D1F"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
         "MsmKey" = "8:_4C5B93BC82FE5E63E01458A8DA46B4D6"
+        "OwnerKey" = "8:_B2BC59C383DD4639A31E6E2E6924F134"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_4C5B93BC82FE5E63E01458A8DA46B4D6"
         "OwnerKey" = "8:_EBAF62F0335F4918AB23EDA708507D1F"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
         "MsmKey" = "8:_586310F986FB0DB4F49D3EAFBD87760C"
+        "OwnerKey" = "8:_B2BC59C383DD4639A31E6E2E6924F134"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_586310F986FB0DB4F49D3EAFBD87760C"
         "OwnerKey" = "8:_EBAF62F0335F4918AB23EDA708507D1F"
         "MsmSig" = "8:_UNDEFINED"
         }
         }
         "Entry"
         {
-        "MsmKey" = "8:_5C6B428301E6F93F534C94605CA6B509"
-        "OwnerKey" = "8:_1BD6A9CD577C40098C968C8B464A03BC"
+        "MsmKey" = "8:_626ECD9012C5D7BD4388B6BE07F5107D"
+        "OwnerKey" = "8:_11BDAAF760654D3792A432B5EB874364"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
         "MsmKey" = "8:_626ECD9012C5D7BD4388B6BE07F5107D"
-        "OwnerKey" = "8:_11BDAAF760654D3792A432B5EB874364"
+        "OwnerKey" = "8:_B2BC59C383DD4639A31E6E2E6924F134"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         "Entry"
         {
         "MsmKey" = "8:_6BC141E8128E964AD9B9281537E64BEA"
+        "OwnerKey" = "8:_B2BC59C383DD4639A31E6E2E6924F134"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_6BC141E8128E964AD9B9281537E64BEA"
         "OwnerKey" = "8:_EBAF62F0335F4918AB23EDA708507D1F"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
         "MsmKey" = "8:_7CBBD8DA1433C10DD08B468DC5A09CF3"
+        "OwnerKey" = "8:_B2BC59C383DD4639A31E6E2E6924F134"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_7CBBD8DA1433C10DD08B468DC5A09CF3"
         "OwnerKey" = "8:_EBAF62F0335F4918AB23EDA708507D1F"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
         "MsmKey" = "8:_89E3F50B2C3DDF59B632A4BEFEE3D3A1"
+        "OwnerKey" = "8:_B2BC59C383DD4639A31E6E2E6924F134"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_89E3F50B2C3DDF59B632A4BEFEE3D3A1"
         "OwnerKey" = "8:_EBAF62F0335F4918AB23EDA708507D1F"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
         "MsmKey" = "8:_91EEC8BDF3543C1C3379FB93171A844E"
+        "OwnerKey" = "8:_B2BC59C383DD4639A31E6E2E6924F134"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_91EEC8BDF3543C1C3379FB93171A844E"
         "OwnerKey" = "8:_EBAF62F0335F4918AB23EDA708507D1F"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
         "MsmKey" = "8:_A490E069DF5DE5852575B6E157EB50BE"
+        "OwnerKey" = "8:_B2BC59C383DD4639A31E6E2E6924F134"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_A490E069DF5DE5852575B6E157EB50BE"
         "OwnerKey" = "8:_EBAF62F0335F4918AB23EDA708507D1F"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
         "MsmKey" = "8:_A611766CD2793378FFAB2F3063F81496"
+        "OwnerKey" = "8:_B2BC59C383DD4639A31E6E2E6924F134"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_A611766CD2793378FFAB2F3063F81496"
         "OwnerKey" = "8:_EBAF62F0335F4918AB23EDA708507D1F"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
         "MsmKey" = "8:_B215C2F0CB9EEF18C32CCAC6CCD02CEF"
+        "OwnerKey" = "8:_B2BC59C383DD4639A31E6E2E6924F134"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_B215C2F0CB9EEF18C32CCAC6CCD02CEF"
         "OwnerKey" = "8:_EBAF62F0335F4918AB23EDA708507D1F"
         "MsmSig" = "8:_UNDEFINED"
         }
         }
         "Entry"
         {
+        "MsmKey" = "8:_B2BC59C383DD4639A31E6E2E6924F134"
+        "OwnerKey" = "8:_UNDEFINED"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_B49160FDF21C82F60E2F28FF690673F7"
+        "OwnerKey" = "8:_1BD6A9CD577C40098C968C8B464A03BC"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
         "MsmKey" = "8:_B72F70CAAFB941ECB02BABC0095D074D"
         "OwnerKey" = "8:_UNDEFINED"
         "MsmSig" = "8:_UNDEFINED"
         "Entry"
         {
         "MsmKey" = "8:_B998E7FC1F540278910B0D58694455C2"
+        "OwnerKey" = "8:_B2BC59C383DD4639A31E6E2E6924F134"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_B998E7FC1F540278910B0D58694455C2"
         "OwnerKey" = "8:_EBAF62F0335F4918AB23EDA708507D1F"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
         "MsmKey" = "8:_C7EE41E4C982C8217BD7DCDA76836670"
+        "OwnerKey" = "8:_B2BC59C383DD4639A31E6E2E6924F134"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_C7EE41E4C982C8217BD7DCDA76836670"
         "OwnerKey" = "8:_EBAF62F0335F4918AB23EDA708507D1F"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
         "MsmKey" = "8:_DD69E9C0F36E10A97EB92CFBAFD2662D"
+        "OwnerKey" = "8:_B2BC59C383DD4639A31E6E2E6924F134"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_DD69E9C0F36E10A97EB92CFBAFD2662D"
         "OwnerKey" = "8:_EBAF62F0335F4918AB23EDA708507D1F"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
         "MsmKey" = "8:_DD70D5956F2E708F680AF121870FFCCD"
+        "OwnerKey" = "8:_B2BC59C383DD4639A31E6E2E6924F134"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_DD70D5956F2E708F680AF121870FFCCD"
         "OwnerKey" = "8:_EBAF62F0335F4918AB23EDA708507D1F"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
         "MsmKey" = "8:_E42C4D0836CDB6008642BC929C51E416"
+        "OwnerKey" = "8:_B2BC59C383DD4639A31E6E2E6924F134"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_E42C4D0836CDB6008642BC929C51E416"
         "OwnerKey" = "8:_EBAF62F0335F4918AB23EDA708507D1F"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
         "MsmKey" = "8:_E46F39A63288379E63BDD76C9F21CC3E"
+        "OwnerKey" = "8:_B2BC59C383DD4639A31E6E2E6924F134"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_E46F39A63288379E63BDD76C9F21CC3E"
         "OwnerKey" = "8:_EBAF62F0335F4918AB23EDA708507D1F"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
         "MsmKey" = "8:_F472AA6700476700D62AABE8262628BF"
+        "OwnerKey" = "8:_B2BC59C383DD4639A31E6E2E6924F134"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_F472AA6700476700D62AABE8262628BF"
         "OwnerKey" = "8:_EBAF62F0335F4918AB23EDA708507D1F"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
         "MsmKey" = "8:_FA76529F78D7D6108EDBA33F19836A6B"
+        "OwnerKey" = "8:_B2BC59C383DD4639A31E6E2E6924F134"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_FA76529F78D7D6108EDBA33F19836A6B"
         "OwnerKey" = "8:_EBAF62F0335F4918AB23EDA708507D1F"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
         "MsmKey" = "8:_FBB2F726C4025B9184DFBD2748E15EBE"
+        "OwnerKey" = "8:_B2BC59C383DD4639A31E6E2E6924F134"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_FBB2F726C4025B9184DFBD2748E15EBE"
         "OwnerKey" = "8:_EBAF62F0335F4918AB23EDA708507D1F"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
         "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_B2BC59C383DD4639A31E6E2E6924F134"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
         "OwnerKey" = "8:_284BED2B665647A5BCB69FFB3C9E6052"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
         "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_263B85E7C62D146E20358A3F08BBC740"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
         "OwnerKey" = "8:_F693ED58D49B3EC1892CE4184575B87B"
         "MsmSig" = "8:_UNDEFINED"
         }
         }
         "File"
         {
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_263B85E7C62D146E20358A3F08BBC740"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Threading.Tasks.Dataflow, Version=0.0.4098.29463, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"
+                "ScatterAssemblies"
+                {
+                    "_263B85E7C62D146E20358A3F08BBC740"
+                    {
+                    "Name" = "8:System.Threading.Tasks.Dataflow.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Threading.Tasks.Dataflow.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_FA3E4362540D4C76A5914763C178A3BD"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
             "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_284BED2B665647A5BCB69FFB3C9E6052"
             {
             "AssemblyRegister" = "3:1"
             "IsDependency" = "11:TRUE"
             "IsolateTo" = "8:"
             }
-            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_5C6B428301E6F93F534C94605CA6B509"
-            {
-            "SourcePath" = "8:Pithos.ShellExtensions.tlb"
-            "TargetName" = "8:Pithos.ShellExtensions.tlb"
-            "Tag" = "8:"
-            "Folder" = "8:_FA3E4362540D4C76A5914763C178A3BD"
-            "Condition" = "8:"
-            "Transitive" = "11:FALSE"
-            "Vital" = "11:TRUE"
-            "ReadOnly" = "11:FALSE"
-            "Hidden" = "11:FALSE"
-            "System" = "11:FALSE"
-            "Permanent" = "11:FALSE"
-            "SharedLegacy" = "11:FALSE"
-            "PackageAs" = "3:1"
-            "Register" = "3:2"
-            "Exclude" = "11:TRUE"
-            "IsDependency" = "11:TRUE"
-            "IsolateTo" = "8:"
-            }
             "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_626ECD9012C5D7BD4388B6BE07F5107D"
             {
             "AssemblyRegister" = "3:1"
             "IsDependency" = "11:TRUE"
             "IsolateTo" = "8:"
             }
+            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_B49160FDF21C82F60E2F28FF690673F7"
+            {
+            "SourcePath" = "8:Pithos.ShellExtensions.tlb"
+            "TargetName" = "8:Pithos.ShellExtensions.tlb"
+            "Tag" = "8:"
+            "Folder" = "8:_FA3E4362540D4C76A5914763C178A3BD"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:2"
+            "Exclude" = "11:TRUE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
             "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_B998E7FC1F540278910B0D58694455C2"
             {
             "AssemblyRegister" = "3:1"
                 {
                 }
             }
+            "{1525181F-901A-416C-8A58-119130FE478E}:_31AAFACF2390469B8297AE1C60ABC37B"
+            {
+            "Name" = "8:#1928"
+            "AlwaysCreate" = "11:FALSE"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Property" = "8:StartupFolder"
+                "Folders"
+                {
+                }
+            }
             "{1525181F-901A-416C-8A58-119130FE478E}:_6A4E9CCC3D6C43F1B145AFEEB2699167"
             {
             "Name" = "8:#1916"
         }
         "Shortcut"
         {
+            "{970C0BB2-C7D0-45D7-ABFA-7EC378858BC0}:_00F31303F27241A9A8CE2F4310F8FF42"
+            {
+            "Name" = "8:Pithos"
+            "Arguments" = "8:startup"
+            "Description" = "8:"
+            "ShowCmd" = "3:1"
+            "IconIndex" = "3:32512"
+            "Transitive" = "11:FALSE"
+            "Target" = "8:_11BDAAF760654D3792A432B5EB874364"
+            "Folder" = "8:_31AAFACF2390469B8297AE1C60ABC37B"
+            "WorkingFolder" = "8:_FA3E4362540D4C76A5914763C178A3BD"
+            "Icon" = "8:_11BDAAF760654D3792A432B5EB874364"
+            "Feature" = "8:"
+            }
             "{970C0BB2-C7D0-45D7-ABFA-7EC378858BC0}:_E586636973E94EBB90EC2DDFD1A1CB16"
             {
             "Name" = "8:Pithos"
                 {
                 }
             }
+            "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_B2BC59C383DD4639A31E6E2E6924F134"
+            {
+            "SourcePath" = "8:..\\Pithos.Client.WPF\\obj\\x86\\Debug\\Pithos.Client.WPF.exe"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_FA3E4362540D4C76A5914763C178A3BD"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:FALSE"
+            "IsolateTo" = "8:"
+            "ProjectOutputGroupRegister" = "3:1"
+            "OutputConfiguration" = "8:"
+            "OutputGroupCanonicalName" = "8:Built"
+            "OutputProjectGuid" = "8:{4D9406A3-50ED-4672-BB97-A0B3EA4946FE}"
+            "ShowKeyOutput" = "11:TRUE"
+                "ExcludeFilters"
+                {
+                }
+            }
             "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_B72F70CAAFB941ECB02BABC0095D074D"
             {
             "SourcePath" = "8:..\\Libraries\\ParallelExtensionsExtras\\obj\\Debug\\ParallelExtensionsExtras.dll"
index 0480980..7309407 100644 (file)
         }
         "Entry"
         {
+        "MsmKey" = "8:_263B85E7C62D146E20358A3F08BBC740"
+        "OwnerKey" = "8:_A611766CD2793378FFAB2F3063F81496"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_263B85E7C62D146E20358A3F08BBC740"
+        "OwnerKey" = "8:_EBAF62F0335F4918AB23EDA708507D1F"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_263B85E7C62D146E20358A3F08BBC740"
+        "OwnerKey" = "8:_11BDAAF760654D3792A432B5EB874364"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
         "MsmKey" = "8:_284BED2B665647A5BCB69FFB3C9E6052"
         "OwnerKey" = "8:_UNDEFINED"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
+        "MsmKey" = "8:_B49160FDF21C82F60E2F28FF690673F7"
+        "OwnerKey" = "8:_1BD6A9CD577C40098C968C8B464A03BC"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
         "MsmKey" = "8:_B72F70CAAFB941ECB02BABC0095D074D"
         "OwnerKey" = "8:_UNDEFINED"
         "MsmSig" = "8:_UNDEFINED"
         "Entry"
         {
         "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_263B85E7C62D146E20358A3F08BBC740"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
         "OwnerKey" = "8:_F693ED58D49B3EC1892CE4184575B87B"
         "MsmSig" = "8:_UNDEFINED"
         }
         }
         "File"
         {
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_263B85E7C62D146E20358A3F08BBC740"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Threading.Tasks.Dataflow, Version=0.0.4098.29463, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"
+                "ScatterAssemblies"
+                {
+                    "_263B85E7C62D146E20358A3F08BBC740"
+                    {
+                    "Name" = "8:System.Threading.Tasks.Dataflow.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Threading.Tasks.Dataflow.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_FA3E4362540D4C76A5914763C178A3BD"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
             "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_284BED2B665647A5BCB69FFB3C9E6052"
             {
             "AssemblyRegister" = "3:1"
             "IsDependency" = "11:TRUE"
             "IsolateTo" = "8:"
             }
+            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_B49160FDF21C82F60E2F28FF690673F7"
+            {
+            "SourcePath" = "8:Pithos.ShellExtensions.tlb"
+            "TargetName" = "8:Pithos.ShellExtensions.tlb"
+            "Tag" = "8:"
+            "Folder" = "8:_FA3E4362540D4C76A5914763C178A3BD"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:2"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
             "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_B998E7FC1F540278910B0D58694455C2"
             {
             "AssemblyRegister" = "3:1"
         }
         "Folder"
         {
+            "{1525181F-901A-416C-8A58-119130FE478E}:_00EC15020F1D4DE68DFB70954E72B79B"
+            {
+            "Name" = "8:#1928"
+            "AlwaysCreate" = "11:FALSE"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Property" = "8:StartupFolder"
+                "Folders"
+                {
+                }
+            }
             "{1525181F-901A-416C-8A58-119130FE478E}:_2FAEB724740948159527B05C76F4FDFA"
             {
             "Name" = "8:#1919"
             "Icon" = "8:_11BDAAF760654D3792A432B5EB874364"
             "Feature" = "8:"
             }
+            "{970C0BB2-C7D0-45D7-ABFA-7EC378858BC0}:_E1F1821D4B3D443AAF50C91735CC3A8D"
+            {
+            "Name" = "8:Pithos"
+            "Arguments" = "8:startup"
+            "Description" = "8:"
+            "ShowCmd" = "3:1"
+            "IconIndex" = "3:32512"
+            "Transitive" = "11:FALSE"
+            "Target" = "8:_11BDAAF760654D3792A432B5EB874364"
+            "Folder" = "8:_00EC15020F1D4DE68DFB70954E72B79B"
+            "WorkingFolder" = "8:_FA3E4362540D4C76A5914763C178A3BD"
+            "Icon" = "8:_11BDAAF760654D3792A432B5EB874364"
+            "Feature" = "8:"
+            }
         }
         "UserInterface"
         {