main
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}