trunk
 1using System;
 2using newtelligence.DasBlog.Runtime;
 3
 4namespace BloggerToDasBlog.Console {
 5	public class DasBlogWriter {
 6		#region Constructors
 7
 8		public DasBlogWriter( )
 9			: this( BlogDataServiceFactory.GetService( AppDomain.CurrentDomain.BaseDirectory, null ), "Journal" ) {}
10
11		public DasBlogWriter( IBlogDataService service, String category ) {
12			_service = service;
13			_category = category;
14		}
15
16		#endregion
17
18		#region Public Methods
19
20		public void Write( IBloggerEntry bloggerEntry ) {
21			Entry entry = new Entry( );
22			entry.CreatedLocalTime = bloggerEntry.Date;
23			entry.ModifiedLocalTime = bloggerEntry.Date;
24			entry.Title =
25				( bloggerEntry.Title.Length > 0
26				  	? bloggerEntry.Title
27				  	: bloggerEntry.Body.Substring( 0, Math.Min( 20, bloggerEntry.Body.Length ) ) );
28			entry.Content = bloggerEntry.Body.Replace( Environment.NewLine, "<br />" );
29			entry.EntryId = Guid.NewGuid( ).ToString( );
30			entry.Categories = _category;
31			entry.Author = bloggerEntry.Author;
32			_service.SaveEntry( entry );
33			if ( bloggerEntry.Comments.Count > 0 ) {
34				foreach ( IBloggerComment bloggerComment in bloggerEntry.Comments ) {
35					WriteComments( bloggerComment, entry.EntryId );
36				}
37			}
38		}
39
40		#endregion
41
42		#region Private Methods
43
44		private void WriteComments( IBloggerComment bloggerComment, String targetEntryId ) {
45			Comment comment = new Comment( );
46			comment.CreatedLocalTime = bloggerComment.Date;
47			comment.ModifiedLocalTime = bloggerComment.Date;
48			comment.TargetEntryId = targetEntryId;
49			comment.Author = bloggerComment.Author;
50			comment.Content = bloggerComment.Body;
51			_service.AddComment( comment );
52		}
53
54		#endregion
55
56		#region Private Fields
57
58		private readonly IBlogDataService _service;
59		private readonly string _category;
60
61		#endregion
62	}
63}