All containers and first level folders are automatically added to Selective Sync...
authorpkanavos <pkanavos@gmail.com>
Tue, 1 May 2012 18:11:08 +0000 (21:11 +0300)
committerpkanavos <pkanavos@gmail.com>
Tue, 1 May 2012 18:11:08 +0000 (21:11 +0300)
Shared Objects are NOT added

trunk/Pithos.Client.WPF/App.xaml.cs
trunk/Pithos.Client.WPF/Preferences/PreferencesViewModel.cs
trunk/Pithos.Client.WPF/app.config

index c44afb1..b399db6 100644 (file)
@@ -210,18 +210,52 @@ namespace Pithos.Client.WPF
             });
 
 
-            var message = String.Format(@"{0}" + Environment.NewLine + "{1}" + Environment.NewLine + "{2}", 
+            //Do not display any messages if this is a 304 code
+            var ignoreExceptions = from exc in e.Exception.InnerExceptions.OfType<WebException>()
+                                   where IsAllowedException(exc)
+                                   select exc;
+
+            if (ignoreExceptions.Any())
+            {
+                e.SetObserved();
+                return;
+            }
+
+
+           /* var message = String.Format(@"{0}" + Environment.NewLine + "{1}" + Environment.NewLine + "{2}", 
                 WPF.Properties.Resources.Unexpected_Error,
                 WPF.Properties.Resources.We_Apologize, 
                 WPF.Properties.Resources.Please_Submit_Error);
-            ShowMessages("Oops!",message, messages);
+            ShowMessages("Oops!",message, messages);*/
             e.SetObserved();            
         }
 
+        private bool IsAllowedException(Exception exc)
+        {
+            var we = exc as WebException;
+            if (we==null)
+            {
+                return false;
+            }
+            var response = we.Response as HttpWebResponse;
+            return (response != null && response.StatusCode == HttpStatusCode.NotModified);
+        }
+
         private void OnUnhandledException(object sender, UnhandledExceptionEventArgs e)
         {
+
+            //Do not display any messages if this is a 304 code
+            if (IsAllowedException(e.ExceptionObject as Exception))
+            {
+                return;
+            }
+
             Log.Error("Unhandled exception", (Exception)e.ExceptionObject);
 
+            if (!e.IsTerminating)
+                //Do not display a message unless the application is terminating
+                return;
+
             var description = e.IsTerminating
                               ? WPF.Properties.Resources.Unexpected_Error_Terminating
                               : WPF.Properties.Resources.Unexpected_Error;
@@ -230,7 +264,6 @@ namespace Pithos.Client.WPF
                 WPF.Properties.Resources.We_Apologize,
                 WPF.Properties.Resources.Please_Submit_Error);
 
-
             var exc = ((Exception) e.ExceptionObject);
             var messages = new[]{
                                    new UserMessage
@@ -245,11 +278,19 @@ namespace Pithos.Client.WPF
             ShowMessages("Oops!", message,messages);
         }
 
+
+
         void OnDispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
         {
+            //Do not display any messages if this is a 304 code
+            if (IsAllowedException(e.Exception))
+            {
+                return;
+            }
+
             Log.Error("Unhandled Dispatcher exception", e.Exception);
             
-            var messages = new[]{
+           /* var messages = new[]{
                                    new UserMessage
                                        {
                                            Message = e.Exception.Message, 
@@ -259,7 +300,7 @@ namespace Pithos.Client.WPF
                                };
             ShowMessages(WPF.Properties.Resources.Error_Title, 
                 WPF.Properties.Resources.Unexpected_Error,
-                messages);
+                messages);*/
             e.Handled=true;
         }
 
index bf22074..3970428 100644 (file)
@@ -43,6 +43,7 @@
 
 using System.Collections.Concurrent;
 using System.Collections.Generic;
+using System.Collections.Specialized;
 using System.ComponentModel.Composition;
 using System.Diagnostics;
 using System.IO;
@@ -55,10 +56,12 @@ using Caliburn.Micro;
 using Pithos.Client.WPF.Configuration;
 using Pithos.Client.WPF.Properties;
 using Pithos.Client.WPF.SelectiveSynch;
+using Pithos.Client.WPF.Utils;
 using Pithos.Core;
 using Pithos.Interfaces;
 using System;
 using System.Linq;
+using Pithos.Network;
 using MessageBox = System.Windows.MessageBox;
 using Screen = Caliburn.Micro.Screen;
 
@@ -405,7 +408,7 @@ namespace Pithos.Client.WPF.Preferences
                var account = Accounts.FirstOrDefault(act => act.AccountName == wizard.AccountName && act.ServerUrl == wizard.CurrentServer);
                if (account != null)
                {
-                   if (MessageBox.Show("The account you specified already exists. Do you want to update it?","The account exists") == MessageBoxResult.Yes)
+                   if (MessageBox.Show("The account you specified already exists. Do you want to update it?", "The account exists") == MessageBoxResult.Yes)
                    {
                        account.ApiKey = wizard.Token;
                        account.IsExpired = false;
@@ -420,8 +423,29 @@ namespace Pithos.Client.WPF.Preferences
                                             ServerUrl = wizard.CurrentServer,
                                             ApiKey = wizard.Token,
                                             RootPath = actualRootPath,
-                                            IsActive = wizard.IsAccountActive
+                                            IsActive = wizard.IsAccountActive,
                                         };
+
+
+                   var client = new CloudFilesClient(newAccount.AccountName, newAccount.ApiKey)
+                                    {
+                                        AuthenticationUrl = newAccount.ServerUrl, UsePithos = true
+                                    };
+                   client.Authenticate();
+
+
+                   var dirs = (from container in client.ListContainers(newAccount.AccountName)
+                               from dir in client.ListObjects(newAccount.AccountName, container.Name)
+                               where container.Name != "trash"
+                               select dir)
+                               .ToTree()
+                               .Select(d=>d.Uri.ToString())
+                               .ToArray();
+                              
+                   newAccount.SelectiveFolders.AddRange(dirs);
+
+                   //TODO:Add the "pithos" container as a default selection                   
+
                    _accountsToAdd.Add(newAccount);
                    var accountVm = new AccountViewModel(newAccount);
                    (Accounts as IProducerConsumerCollection<AccountViewModel>).TryAdd(accountVm);
index 8bb6d1b..79da321 100644 (file)
 <?xml version="1.0" encoding="utf-8"?>
 <configuration>
-  <configSections>
-    <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-      <section name="Pithos.Client.WPF.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
-    </sectionGroup>
-    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-      <section name="Pithos.Client.WPF.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
-    </sectionGroup>
-    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
-  </configSections>
-  <runtime>
-    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
-      <dependentAssembly>
-        <assemblyIdentity name="Caliburn.Micro" publicKeyToken="8e5891231f2ed21f" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-1.2.0.0" newVersion="1.2.0.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="NHibernate" publicKeyToken="aa95f207798dfdb4" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-3.1.0.4000" newVersion="3.1.0.4000" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="NHibernate.ByteCode.Castle" publicKeyToken="aa95f207798dfdb4" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-3.1.0.4000" newVersion="3.1.0.4000" />
-      </dependentAssembly>
-    </assemblyBinding>
-  </runtime>
+       <configSections>
+               <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+                       <section name="Pithos.Client.WPF.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
+               </sectionGroup>
+               <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+                       <section name="Pithos.Client.WPF.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
+               </sectionGroup>
+               <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
+       </configSections>
+       <runtime>
+               <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
+                       <dependentAssembly>
+                               <assemblyIdentity name="Caliburn.Micro" publicKeyToken="8e5891231f2ed21f" culture="neutral" />
+                               <bindingRedirect oldVersion="0.0.0.0-1.2.0.0" newVersion="1.2.0.0" />
+                       </dependentAssembly>
+                       <dependentAssembly>
+                               <assemblyIdentity name="NHibernate" publicKeyToken="aa95f207798dfdb4" culture="neutral" />
+                               <bindingRedirect oldVersion="0.0.0.0-3.1.0.4000" newVersion="3.1.0.4000" />
+                       </dependentAssembly>
+                       <dependentAssembly>
+                               <assemblyIdentity name="NHibernate.ByteCode.Castle" publicKeyToken="aa95f207798dfdb4" culture="neutral" />
+                               <bindingRedirect oldVersion="0.0.0.0-3.1.0.4000" newVersion="3.1.0.4000" />
+                       </dependentAssembly>
+               </assemblyBinding>
+       </runtime>
 
 <system.diagnostics >
-    <sources >
-<!--
-      <source name="System.Net"  switchValue="Information" tracemode="protocolonly" maxdatasize="65536" >
-        <listeners>
-          <add name="ms" type="Pithos.Client.WPF.Diagnostics.Log4NetForwarder,PithosPlus" />          
-        </listeners>        
-      </source>
--->
-    </sources>
-  </system.diagnostics>
-  <userSettings>
-    <Pithos.Client.WPF.Properties.Settings>
-      <setting name="PithosPath" serializeAs="String">
-        <value>e:\Pithos</value>
-      </setting>
-      <setting name="IconPath" serializeAs="String">
-        <value>C:\Program Files\Common Files\TortoiseOverlays\icons\XPStyle</value>
-      </setting>
-      <setting name="ProxyServer" serializeAs="String">
-        <value />
-      </setting>
-      <setting name="ProxyPort" serializeAs="String">
-        <value>8080</value>
-      </setting>
-      <setting name="ProxyUsername" serializeAs="String">
-        <value />
-      </setting>
-      <setting name="ProxyPassword" serializeAs="String">
-        <value />
-      </setting>
-      <setting name="ProxyAuthentication" serializeAs="String">
-        <value>True</value>
-      </setting>
-      <setting name="ExtensionsActivated" serializeAs="String">
-        <value>True</value>
-      </setting>
-      <setting name="UserName" serializeAs="String">
-        <value>pkanavos</value>
-      </setting>
-      <setting name="ApiKey" serializeAs="String">
-        <value>9d3cb7b231e96f72ebe96af1c6cd5112</value>
-      </setting>
-      <setting name="ShowDesktopNotifications" serializeAs="String">
-        <value>True</value>
-      </setting>
-      <setting name="StartOnSystemStartup" serializeAs="String">
-        <value>True</value>
-      </setting>
-      <setting name="UseNoProxy" serializeAs="String">
-        <value>False</value>
-      </setting>
-      <setting name="UseDefaultProxy" serializeAs="String">
-        <value>True</value>
-      </setting>
-      <setting name="UseManualProxy" serializeAs="String">
-        <value>False</value>
-      </setting>
-      <setting name="MustUpgrade" serializeAs="String">
-        <value>True</value>
-      </setting>
-      <setting name="PollingInterval" serializeAs="String">
-        <value>10</value>
-      </setting>
-      <setting name="ProxyDomain" serializeAs="String">
-        <value />
-      </setting>
-      <setting name="HashingParallelism" serializeAs="String">
-        <value>1</value>
-      </setting>
-      <setting name="StartupDelay" serializeAs="String">
-        <value>00:01:00</value>
-      </setting>
-      <setting name="UpdateDiagnostics" serializeAs="String">
-        <value>False</value>
-      </setting>
-      <setting name="UpdateCheckInterval" serializeAs="String">
-        <value>24.00:00:00</value>
-      </setting>
-      <setting name="DebugLoggingEnabled" serializeAs="String">
-        <value>False</value>
-      </setting>
-      <setting name="IgnoreCertificateErrors" serializeAs="String">
-        <value>False</value>
-      </setting>
-    </Pithos.Client.WPF.Properties.Settings>
-  </userSettings>
-  <startup>
-    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client" />
-  </startup>
-  <applicationSettings>
-    <Pithos.Client.WPF.Properties.Settings>
-      <setting name="CloudfilesAuthenticationUrl" serializeAs="String">
-        <value>https://auth.api.rackspacecloud.com</value>
-      </setting>
-      <setting name="FeedbackUri" serializeAs="String">
-        <value>https://pithos.dev.grnet.gr/im/feedback</value>
-      </setting>
-      <setting name="ProductionServer" serializeAs="String">
-        <value>https://pithos.okeanos.grnet.gr</value>
-      </setting>
-      <setting name="DevelopmentServer" serializeAs="String">
-        <value>https://pithos.dev.grnet.gr</value>
-      </setting>
-      <setting name="UpdateUrl" serializeAs="String">
-        <value>https://code.grnet.gr/projects/pithos-ms-client/repository/revisions/master/raw/trunk/Pithos.Installer/versioninfo.xml</value>
-      </setting>
-      <setting name="FileIdleTimeout" serializeAs="String">
-        <value>00:00:10</value>
-      </setting>
-      <setting name="UpdateForceCheck" serializeAs="String">
-        <value>True</value>
-      </setting>
-      <setting name="Servers" serializeAs="Xml">
-        <value>
-          <ArrayOfServerSettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-              xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-            <ServerSettings>
-              <ServerUri>https://pithos.okeanos.grnet.gr</ServerUri>
-              <LoginUri>https://pithos.okeanos.grnet.gr/login</LoginUri>
-              <LogoutUri>https://accounts.okeanos.grnet.gr/im/logout</LogoutUri>
-            </ServerSettings>
-            <ServerSettings>
-              <ServerUri>https://pithos.dev.grnet.gr</ServerUri>
-              <LoginUri>https://pithos.dev.grnet.gr/login</LoginUri>
-              <LogoutUri>https://pithos.dev.grnet.gr/im/logout</LogoutUri>
-            </ServerSettings>
-          </ArrayOfServerSettings>
-        </value>
-      </setting>      
-    </Pithos.Client.WPF.Properties.Settings>
-  </applicationSettings>
-  <log4net>
-    <appender name="TraceAppender" type="log4net.Appender.TraceAppender">
-      <layout type="log4net.Layout.PatternLayout">
-        <conversionPattern value="%logger (%property{CloudFile}) [%level]- %message%newline" />
-      </layout>
-      <filter type="log4net.Filter.LoggerMatchFilter">
-        <loggerToMatch value="NHibernate" />
-        <acceptOnMatch value="false" />
-      </filter>
-      <filter type="log4net.Filter.LoggerMatchFilter">
-        <loggerToMatch value="Caliburn" />
-        <acceptOnMatch value="false" />
-      </filter>
-    </appender>
-    <appender name="DumpFileAppender" type="log4net.Appender.RollingFileAppender">
-      <file value="errorlog.xml" />
-      <appendToFile value="false" />
-      <rollingStyle value="Size" />
-      <maxSizeRollBackups value="10" />
-      <maximumFileSize value="100KB" />
-      <staticLogFileName value="true" />
-      <layout type="log4net.Layout.XMLLayout" />
-    </appender>
-    <appender name="DebugFileAppender" type="log4net.Appender.RollingFileAppender">
-      <file value="debuglog.xml" />
-      <appendToFile value="true" />
-      <rollingStyle value="Size" />
-      <maxSizeRollBackups value="10" />
-      <maximumFileSize value="2MB" />
-      <staticLogFileName value="true" />
-      <layout type="log4net.Layout.XMLLayout" />
-    </appender>
-    <appender name="OutputDebugStringAppender" type="log4net.Appender.OutputDebugStringAppender">
-      <layout type="log4net.Layout.PatternLayout">
-        <conversionPattern value="%logger (%property{Operation}) [%level]- %message%newline" />
-      </layout>
-    </appender>
-    <appender name="LossyFileAppender" type="log4net.Appender.BufferingForwardingAppender">
-      <filter type="log4net.Filter.LevelRangeFilter">
-        <levelMin value="DEBUG" />
-        <levelMax value="FATAL" />
-      </filter>
-      <bufferSize value="30" />
-      <lossy value="true" />
-      <evaluator type="log4net.Core.LevelEvaluator">
-        <threshold value="ERROR" />
-      </evaluator>
-      <appender-ref ref="DumpFileAppender" />
-    </appender>
-    <!--
+               <sources >
+
+                       <source name="System.Net"  switchValue="Warning" tracemode="protocolonly" maxdatasize="65536" >
+                               <listeners>
+                                       <add name="ms" type="Pithos.Client.WPF.Diagnostics.Log4NetForwarder,PithosPlus" />          
+                               </listeners>        
+                       </source>
+               </sources>
+       </system.diagnostics>
+       <userSettings>
+               <Pithos.Client.WPF.Properties.Settings>
+                       <setting name="PithosPath" serializeAs="String">
+                               <value>e:\Pithos</value>
+                       </setting>
+                       <setting name="IconPath" serializeAs="String">
+                               <value>C:\Program Files\Common Files\TortoiseOverlays\icons\XPStyle</value>
+                       </setting>
+                       <setting name="ProxyServer" serializeAs="String">
+                               <value />
+                       </setting>
+                       <setting name="ProxyPort" serializeAs="String">
+                               <value>8080</value>
+                       </setting>
+                       <setting name="ProxyUsername" serializeAs="String">
+                               <value />
+                       </setting>
+                       <setting name="ProxyPassword" serializeAs="String">
+                               <value />
+                       </setting>
+                       <setting name="ProxyAuthentication" serializeAs="String">
+                               <value>True</value>
+                       </setting>
+                       <setting name="ExtensionsActivated" serializeAs="String">
+                               <value>True</value>
+                       </setting>
+                       <setting name="UserName" serializeAs="String">
+                               <value>pkanavos</value>
+                       </setting>
+                       <setting name="ApiKey" serializeAs="String">
+                               <value>9d3cb7b231e96f72ebe96af1c6cd5112</value>
+                       </setting>
+                       <setting name="ShowDesktopNotifications" serializeAs="String">
+                               <value>True</value>
+                       </setting>
+                       <setting name="StartOnSystemStartup" serializeAs="String">
+                               <value>True</value>
+                       </setting>
+                       <setting name="UseNoProxy" serializeAs="String">
+                               <value>False</value>
+                       </setting>
+                       <setting name="UseDefaultProxy" serializeAs="String">
+                               <value>True</value>
+                       </setting>
+                       <setting name="UseManualProxy" serializeAs="String">
+                               <value>False</value>
+                       </setting>
+                       <setting name="MustUpgrade" serializeAs="String">
+                               <value>True</value>
+                       </setting>
+                       <setting name="PollingInterval" serializeAs="String">
+                               <value>10</value>
+                       </setting>
+                       <setting name="ProxyDomain" serializeAs="String">
+                               <value />
+                       </setting>
+                       <setting name="HashingParallelism" serializeAs="String">
+                               <value>1</value>
+                       </setting>
+                       <setting name="StartupDelay" serializeAs="String">
+                               <value>00:01:00</value>
+                       </setting>
+                       <setting name="UpdateDiagnostics" serializeAs="String">
+                               <value>False</value>
+                       </setting>
+                       <setting name="UpdateCheckInterval" serializeAs="String">
+                               <value>24.00:00:00</value>
+                       </setting>
+                       <setting name="DebugLoggingEnabled" serializeAs="String">
+                               <value>False</value>
+                       </setting>
+                       <setting name="IgnoreCertificateErrors" serializeAs="String">
+                               <value>False</value>
+                       </setting>
+               </Pithos.Client.WPF.Properties.Settings>
+       </userSettings>
+       <startup>
+               <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client" />
+       </startup>
+       <applicationSettings>
+               <Pithos.Client.WPF.Properties.Settings>
+                       <setting name="CloudfilesAuthenticationUrl" serializeAs="String">
+                               <value>https://auth.api.rackspacecloud.com</value>
+                       </setting>
+                       <setting name="FeedbackUri" serializeAs="String">
+                               <value>https://pithos.dev.grnet.gr/im/feedback</value>
+                       </setting>
+                       <setting name="ProductionServer" serializeAs="String">
+                               <value>https://pithos.okeanos.grnet.gr</value>
+                       </setting>
+                       <setting name="DevelopmentServer" serializeAs="String">
+                               <value>https://pithos.dev.grnet.gr</value>
+                       </setting>
+                       <setting name="UpdateUrl" serializeAs="String">
+                               <value>https://code.grnet.gr/projects/pithos-ms-client/repository/revisions/master/raw/trunk/Pithos.Installer/versioninfo.xml</value>
+                       </setting>
+                       <setting name="FileIdleTimeout" serializeAs="String">
+                               <value>00:00:10</value>
+                       </setting>
+                       <setting name="UpdateForceCheck" serializeAs="String">
+                               <value>True</value>
+                       </setting>
+                       <setting name="Servers" serializeAs="Xml">
+                               <value>
+                                       <ArrayOfServerSettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+                                                       xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+                                               <ServerSettings>
+                                                       <ServerUri>https://pithos.okeanos.grnet.gr</ServerUri>
+                                                       <LoginUri>https://pithos.okeanos.grnet.gr/login</LoginUri>
+                                                       <LogoutUri>https://accounts.okeanos.grnet.gr/im/logout</LogoutUri>
+                                               </ServerSettings>
+                                               <ServerSettings>
+                                                       <ServerUri>https://pithos.dev.grnet.gr</ServerUri>
+                                                       <LoginUri>https://pithos.dev.grnet.gr/login</LoginUri>
+                                                       <LogoutUri>https://pithos.dev.grnet.gr/im/logout</LogoutUri>
+                                               </ServerSettings>
+                                       </ArrayOfServerSettings>
+                               </value>
+                       </setting>      
+               </Pithos.Client.WPF.Properties.Settings>
+       </applicationSettings>
+       <log4net>
+               <appender name="TraceAppender" type="log4net.Appender.TraceAppender">
+                       <layout type="log4net.Layout.PatternLayout">
+                               <conversionPattern value="%logger (%property{CloudFile}) [%level]- %message%newline" />
+                       </layout>
+                       <filter type="log4net.Filter.LoggerMatchFilter">
+                               <loggerToMatch value="NHibernate" />
+                               <acceptOnMatch value="false" />
+                       </filter>
+                       <filter type="log4net.Filter.LoggerMatchFilter">
+                               <loggerToMatch value="Caliburn" />
+                               <acceptOnMatch value="false" />
+                       </filter>
+               </appender>
+               <appender name="DumpFileAppender" type="log4net.Appender.RollingFileAppender">
+                       <file value="errorlog.xml" />
+                       <appendToFile value="false" />
+                       <rollingStyle value="Size" />
+                       <maxSizeRollBackups value="10" />
+                       <maximumFileSize value="100KB" />
+                       <staticLogFileName value="true" />
+                       <layout type="log4net.Layout.XMLLayout" />
+               </appender>
+               <appender name="DebugFileAppender" type="log4net.Appender.RollingFileAppender">
+                       <file value="debuglog.xml" />
+                       <appendToFile value="true" />
+                       <rollingStyle value="Size" />
+                       <maxSizeRollBackups value="10" />
+                       <maximumFileSize value="2MB" />
+                       <staticLogFileName value="true" />
+                       <layout type="log4net.Layout.XMLLayout" />
+               </appender>
+               <appender name="NetworkFileAppender" type="log4net.Appender.RollingFileAppender">
+                       <file value="network.log" />
+                       <appendToFile value="true" />
+                       <rollingStyle value="Size" />
+                       <maxSizeRollBackups value="10" />
+                       <maximumFileSize value="2MB" />
+                       <staticLogFileName value="true" />
+                       <layout type="log4net.Layout.PatternLayout">
+                               <conversionPattern value="%logger (%property{Operation}) [%level]- %message%newline" />
+                       </layout>
+               </appender>
+               <appender name="OutputDebugStringAppender" type="log4net.Appender.OutputDebugStringAppender">
+                       <layout type="log4net.Layout.PatternLayout">
+                               <conversionPattern value="%logger (%property{Operation}) [%level]- %message%newline" />
+                       </layout>
+               </appender>
+               <appender name="LossyFileAppender" type="log4net.Appender.BufferingForwardingAppender">
+                       <filter type="log4net.Filter.LevelRangeFilter">
+                               <levelMin value="DEBUG" />
+                               <levelMax value="FATAL" />
+                       </filter>
+                       <bufferSize value="30" />
+                       <lossy value="true" />
+                       <evaluator type="log4net.Core.LevelEvaluator">
+                               <threshold value="ERROR" />
+                       </evaluator>
+                       <appender-ref ref="DumpFileAppender" />
+               </appender>
+               <!--
                <appender name="MemoryAppender" type="log4net.Appender.MemoryAppender" >
                        
                        <threshold value="All" />
                </appender>
 -->
-    <!--
+               <!--
                <appender name="LossySmtpAppender" type="log4net.Appender.SmtpAppender">
                        <to value="pkanavos@gmail.com" />
                        <from value="pkpithos@gmail.com" />
                        </layout>
                </appender>
 -->
-    <logger name="NHibernate" additivity="true">
-      <level value="WARN" />
-      <appender-ref ref="TraceAppender" />
-    </logger>
-    <logger name="Caliburn" additivity="false">
-      <level value="WARN" />
-      <appender-ref ref="TraceAppender" />
-    </logger>
-    <logger name="Pithos" additivity="true">
-      <level value="ALL" />
-      <appender-ref ref="TraceAppender" />
-    </logger>
-    <root>
-      <level value="ALL" />
-      <appender-ref ref="DebugFileAppender" />
-      <appender-ref ref="LossyFileAppender" />
-      <!--
+               <logger name="NHibernate" additivity="true">
+                       <level value="WARN" />
+                       <appender-ref ref="TraceAppender" />
+               </logger>
+               <logger name="Caliburn" additivity="false">
+                       <level value="WARN" />
+                       <appender-ref ref="TraceAppender" />
+               </logger>
+               <logger name="Pithos" additivity="true">
+                       <level value="ALL" />
+                       <appender-ref ref="TraceAppender" />
+               </logger>
+               <logger name="System.Net" additivity="true">
+                       <level value="ALL" />
+                       <appender-ref ref="NetworkFileAppender" />
+               </logger>
+               <root>
+                       <level value="ALL" />
+                       <appender-ref ref="DebugFileAppender" />
+                       <appender-ref ref="LossyFileAppender" />
+                       <!--
                        <appender-ref ref="LossySmtpAppender" />
 -->
-      <appender-ref ref="TraceAppender" />
-      <appender-ref ref="MemoryAppender" />
-      <appender-ref ref="OutputDebugStringAppender" />
-    </root>
-  </log4net>
+                       <appender-ref ref="TraceAppender" />
+                       <appender-ref ref="MemoryAppender" />
+                       <appender-ref ref="OutputDebugStringAppender" />
+               </root>
+       </log4net>
 </configuration>
\ No newline at end of file