OpenLiveWriter/utilities/BlogServer/BlogConfig.cs

87 lines
2.1 KiB
C#

using System;
using System.Configuration;
using System.IO;
using System.Xml;
using BlogServer.Model;
namespace BlogServer
{
public class BlogConfig
{
private readonly Blog _blog;
private readonly string _blogId;
private readonly string _blogName;
private readonly string _homepageUrl;
private readonly string _username;
private readonly string _password;
private readonly string _uploadPath;
private readonly string _uploadDir;
public BlogConfig(XmlElement configEl)
{
_homepageUrl = XmlUtil.ReadString(configEl, "homepageUrl", null);
if (_homepageUrl == null)
throw new ConfigurationException(GetType().FullName + " property class requires a 'homepageUrl' subelement");
string path = XmlUtil.ReadPath(configEl, "path", null);
if (path == null)
throw new ConfigurationException(GetType().FullName + " property class requires a 'path' subelement");
_blog = new XmlBlog(path);
_blogId = XmlUtil.ReadString(configEl, "id", Path.GetFileNameWithoutExtension(path));
_blogName = XmlUtil.ReadString(configEl, "displayName", _blogId);
_username = XmlUtil.ReadString(configEl, "username", string.Empty);
_password = XmlUtil.ReadString(configEl, "password", string.Empty);
_uploadPath = XmlUtil.ReadString(configEl, "uploadPath", null);
_uploadDir = XmlUtil.ReadPath(configEl, "uploadDir", null);
if (_uploadPath != null ^ _uploadDir != null)
{
throw new ConfigurationException(GetType().FullName +
" property class requires uploadPath and uploadDir to both be present to support newMediaObject");
}
}
public Blog Blog
{
get { return _blog; }
}
public string BlogId
{
get { return _blogId; }
}
public string HomepageUrl
{
get { return _homepageUrl; }
}
public string BlogName
{
get { return _blogName; }
}
public bool CheckUsername(string username)
{
return _username == username;
}
public bool CheckPassword(string password)
{
return _password == password;
}
public string UploadPath
{
get { return _uploadPath; }
}
public string UploadDir
{
get { return _uploadDir; }
}
}
}