rssfeeder_src.zip
RSSFeeder
RSSBlogAPI
RSSBlogAPI.csproj.user
Web References
CommunityServer
blogservice.disco
blogservice.wsdl
Reference.map
DotText
Reference.map
simpleblogservice.disco
simpleblogservice.wsdl
RSSCommon
Helper
PropertyEditor
RSSCommon.csproj.user
RSSFeeder
Controls
docs
dropshadow.png
My Pic 7.jpg
WIndows98.jpg
Helpers
Resources
E-mail.ico
rss.ico
RSSFeeder.mdb
RSSFeeder.csproj.user
RSSStarter.exe
RSSFeederResources
PublicQueue.ico
RSSFeeder.mdb
RSSFeederResources.csproj.user
RSSFeederSetup
Messages.ico
RSSFeederSetup.vdproj
Test
RSSStarter
DummyForm.frm
DummyForm.frx
MainModule.bas
RSSStarter.exe
RSSStarter.vbp
RSSStarter.vbw
RSSTests
App.ico
RSSTests.csproj.user
Thirdparty
AxInterop.DHTMLEDLib.dll
AxInterop.SHDocVw.dll
Eyefinder.dll
GotDotNet.Exslt.dll
HttpDownloader.dll
Interop.DHTMLEDLib.dll
Interop.SHDocVw.dll
Interop.WindowsInstaller.dll
Microsoft.ApplicationBlocks.Updater.ActivationProcessors.dll
Microsoft.ApplicationBlocks.Updater.dll
Microsoft.ApplicationBlocks.Updater.Downloaders.dll
Microsoft.Practices.EnterpriseLibrary.Caching.dll
Microsoft.Practices.EnterpriseLibrary.Common.dll
Microsoft.Practices.EnterpriseLibrary.Configuration.dll
Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.dll
Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging.dll
Microsoft.Practices.EnterpriseLibrary.Logging.dll
Microsoft.Practices.EnterpriseLibrary.Security.Cache.CachingStore.dll
Microsoft.Practices.EnterpriseLibrary.Security.Cryptography.dll
Microsoft.Practices.EnterpriseLibrary.Security.dll
NotifyIconBalloon.dll
SandBar.dll
SandDock.dll
SgmlReaderDll.dll
|
// Copyright � 2005 by Omar Al Zabir. All rights are reserved.
//
// If you like this code then feel free to go ahead and use it.
// The only thing I ask is that you don't remove or alter my copyright notice.
//
// Your use of this software is entirely at your own risk. I make no claims or
// warrantees about the reliability or fitness of this code for any particular purpose.
// If you make changes or additions to this code please mark your code as being yours.
//
// website http://www.oazabir.com, email OmarAlZabir@gmail.com, msn oazabir@hotmail.com
using System;
using System.Diagnostics;
using System.IO;
using System.Collections;
using System.Xml;
using System.Xml.Serialization;
using Microsoft.Practices.EnterpriseLibrary.Logging;
namespace RSSFeeder.Helpers
{
using RSSCommon;
using RSSCommon.Helper;
using RSSBlogAPI;
/// <summary>
/// Helper class for storing/retrieving global configuration
/// </summary>
public class ConfigurationHelper
{
public const string CONFIGURATION_BACKUP_FILE = "ConfigurationBackup.xml";
public static void CopyFiles()
{
#region Log
Logger.Write("Copying files...");
#endregion
string exeFileName = Process.GetCurrentProcess().MainModule.FileName;
DateTime exeDateTime = File.GetLastWriteTime( exeFileName );
// 1. Create the default XSLT file
Configuration.Instance.XSLFileName = Path.Combine( ApplicationSettings.ApplicationDataPath, "default.xslt" );
if( !File.Exists( Configuration.Instance.XSLFileName ) || File.GetLastWriteTime( Configuration.Instance.XSLFileName ) < exeDateTime )
SerializationHelper.WriteEmbeddedFile( "default.xslt", Configuration.Instance.XSLFileName );
// 2. Copy the java script file
//string jsFilePath = Path.Combine( ApplicationSettings.ApplicationDataPath, "fix.js" );
//SerializationHelper.WriteEmbeddedFile( "RSSFeeder.Resources.fix.js", jsFilePath );
// 3. Copy newspaper XSL
Configuration.Instance.NewspaperXSL = Path.Combine( ApplicationSettings.ApplicationDataPath, "rss2html.xslt" );
if( !File.Exists( Configuration.Instance.NewspaperXSL ) || File.GetLastWriteTime( Configuration.Instance.NewspaperXSL ) < exeDateTime )
SerializationHelper.WriteEmbeddedFile( "rss2html.xslt", Configuration.Instance.NewspaperXSL );
// 4. Copy outlook view XML
Configuration.Instance.OutlookViewXmlPath = Path.Combine( ApplicationSettings.ApplicationDataPath, "RSSFeederView.xml" );
if( !File.Exists( Configuration.Instance.OutlookViewXmlPath ) || File.GetLastWriteTime( Configuration.Instance.OutlookViewXmlPath ) < exeDateTime )
SerializationHelper.WriteEmbeddedFile( "RSSFeederView.xml", Configuration.Instance.OutlookViewXmlPath );
// 5. Copy outlook XSL
Configuration.Instance.OutlookXSL = Path.Combine( ApplicationSettings.ApplicationDataPath, "outlook.xslt" );
if( !File.Exists( Configuration.Instance.OutlookXSL ) || File.GetLastWriteTime( Configuration.Instance.OutlookXSL ) < exeDateTime )
SerializationHelper.WriteEmbeddedFile( "outlook.xslt", Configuration.Instance.OutlookXSL );
// 6. Atom to RSS Converter XSL
Configuration.Instance.AtomToRssXsl= Path.Combine( ApplicationSettings.ApplicationDataPath, "atomtorss2.xslt" );
if( !File.Exists( Configuration.Instance.AtomToRssXsl ) || File.GetLastWriteTime( Configuration.Instance.AtomToRssXsl ) < exeDateTime )
SerializationHelper.WriteEmbeddedFile( "atomtorss2.xslt", Configuration.Instance.AtomToRssXsl );
}
public static void LoadGlobalSettings()
{
EntLibHelper.LoadConfiguration();
// Try loading the web log configuration. For first time, it may fail, never mind
try
{
WebLogProvider.LoadWebLogs();
}
catch
{
}
// If this is the new installation, try restoring the old configuration
if( Configuration.Instance.IsNewInstall )
{
string configPath = Path.Combine( ApplicationSettings.ApplicationDataPath, CONFIGURATION_BACKUP_FILE );
if( File.Exists( configPath ) )
{
using( FileStream file = new FileStream( configPath, FileMode.Open ) )
{
Configuration oldConfig = (Configuration)SerializationHelper.Deserialize( file, typeof( Configuration ) );
// Copy old config settings to new config
SerializationHelper.CopyProperties( oldConfig, Configuration.Instance );
}
}
Configuration.Instance.IsNewInstall = false;
SaveGlobalSettings();
}
RSSCommon.PropertyEditor.PasswordEditor.PasswordProvider = new EntLibHelper();
// Subscribe to change event so that whenever the configuration object changes, it is saved
Configuration.Instance.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(Instance_PropertyChanged);
}
public static void SaveGlobalSettings()
{
EntLibHelper.Debug("Saving configuration", "");
EntLibHelper.SaveConfiguration();
// 6. Copy the configuration file to application data in order to maintain a backup of it.
// Next time when a new version comes, we need to get settings from this backup
string configPath = Path.Combine( ApplicationSettings.ApplicationDataPath, CONFIGURATION_BACKUP_FILE );
using( FileStream file = new FileStream( configPath, FileMode.Create ) )
{
SerializationHelper.Serialize( file, Configuration.Instance );
}
WebLogProvider.SaveWebLogs();
}
private static void Instance_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
{
if( Configuration.Instance.LoadAtStartup )
RegistryHelper.RegisterAtStartup();
else
RegistryHelper.UnregisterAtStartup();
SaveGlobalSettings();
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of use and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.