// 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.Net;
namespace RSSBlogAPI{
/// <summary>
/// Base class for custom Blog API. See an implementation for details.
/// </summary>
public abstract class BlogAPIBase
{
#region Private Fields
private string _BlogId;
private string _Username;
private string _Password;
private string _Url;
private WebProxy _ProxyServer = WebProxy.GetDefaultProxy();
#endregion
#region Abstract Properties
public abstract void Test();
public abstract bool HasCategories { get; }
public abstract bool HasBlogId { get; }
public abstract string EngineName { get; }
public abstract string HelpText { get; }
public abstract Category [] GetCategories();
public abstract string PostItem( Post post );
#endregion
#region General implementations of properties
public virtual string BlogId
{
get { return _BlogId; }
set { _BlogId = value; }
}
public virtual string Username
{
get { return _Username; }
set { _Username = value; }
}
public virtual string Password
{
get { return _Password; }
set { _Password = value; }
}
public virtual string Url
{
get { return _Url; }
set { _Url = value; }
}
public WebProxy ProxyServer
{
get { return _ProxyServer; }
set { _ProxyServer = value; }
}
#endregion
protected virtual HttpWebRequest CreateRequest( string method )
{
HttpWebRequest request = HttpWebRequest.Create( this.Url ) as HttpWebRequest;
request.Proxy = this.ProxyServer;
request.ContentType = "text/xml";
request.Method = method;
request.UserAgent = "RSS Feeder";
return request;
}
}
}
|