Пример #1
0
        internal static void EnsureBlogExists(String blogGuid, out BlogLINQ blogLinq, String message, MinimaServiceLINQDataContext db)
        {
            Func <BlogLINQ, Boolean> blogExists = x => x.BlogGuid == blogGuid;

            blogLinq = (from p in db.Blogs where p.BlogGuid == blogGuid select p).FirstOrDefault();
            if (blogLinq == null)
            {
                throw new ArgumentException(message);
            }
        }
Пример #2
0
        internal static void EnsureBlogExistsViaBlogEntryOrBlogGuid(String blogGuid, out BlogLINQ blogLinq, String message, MinimaServiceLINQDataContext db)
        {
            Func <BlogLINQ, Boolean> blogExists = x => x.BlogGuid == blogGuid;

            blogLinq = db.Blogs.SingleOrDefault(blogExists);
            if (blogLinq == null)
            {
                //+ perhaps this is actually a blog entry guid
                Func <BlogEntryLINQ, Boolean> blogEntryExists = x => x.BlogEntryGuid == blogGuid;
                BlogEntryLINQ blogEntryLinq = db.BlogEntries.SingleOrDefault(blogEntryExists);
                if (blogEntryLinq != null)
                {
                    blogLinq = blogEntryLinq.Blog;
                }
                else
                {
                    throw new ArgumentException(message);
                }
            }
        }
Пример #3
0
        public static String Build(BlogEntryLINQ blogEntryLinq, BlogLINQ blogLinq)
        {
            DateTime postDateTime = blogEntryLinq.BlogEntryPostDateTime;
            BlogEntryUrlMappingLINQ blogEntryUrlMappingLinq = blogEntryLinq.BlogEntryUrlMappings.FirstOrDefault();

            if (blogEntryUrlMappingLinq == null)
            {
                return(String.Empty);
            }
            String urlMapping  = blogEntryUrlMappingLinq.BlogEntryUrlMappingName;
            String baseBlogUrl = blogLinq.BlogPrimaryUrl;
            //+
            StringBuilder blogEntryPage = new StringBuilder();

            blogEntryPage.Append(postDateTime.Year);
            blogEntryPage.Append("/");
            String month = String.Empty;

            if (postDateTime.Month.ToString().Length < 2)
            {
                month = "0" + postDateTime.Month.ToString();
            }
            else
            {
                month = postDateTime.Month.ToString();
            }
            blogEntryPage.Append(String.Format("{0:00}/", postDateTime.Month));
            //+
            if (!String.IsNullOrEmpty(urlMapping))
            {
                blogEntryPage.Append(urlMapping);
            }
            else
            {
                throw new FormatException("BlogEntryPostURlMapping not set");
            }
            //+
            return(String.Format("{0}{1}", baseBlogUrl, blogEntryPage.ToString()));
        }
Пример #4
0
 public List <BlogMetaData> GetBlogListForAssociatedAuthor(String authorEmail)
 {
     using (DataContext db = new DataContext(ServiceConfiguration.ConnectionString))
     {
         //+ ensure blog exists
         AuthorLINQ authorLinq;
         Validator.EnsureAuthorExists(authorEmail, out authorLinq, db);
         //+
         List <Int32> blogEntryIdList = db.AuthorBlogAssociations
                                        .Where(p => p.AuthorId == authorLinq.AuthorId)
                                        .Select(p => p.BlogId)
                                        .ToList();
         List <BlogMetaData> blogMetaDataList = new List <BlogMetaData>();
         foreach (Int32 blogId in blogEntryIdList)
         {
             BlogMetaData blogMetaData = new BlogMetaData();
             BlogLINQ     blogLinq     = db.Blogs.Single(p => p.BlogId == blogId);
             blogMetaData.Description    = blogLinq.BlogDescription;
             blogMetaData.FeedTitle      = blogLinq.BlogFeedTitle;
             blogMetaData.FeedUri        = new Uri(blogLinq.BlogFeedUrl);
             blogMetaData.Guid           = blogLinq.BlogGuid;
             blogMetaData.Title          = blogLinq.BlogTitle;
             blogMetaData.Uri            = new Uri(blogLinq.BlogPrimaryUrl);
             blogMetaData.CreateDateTime = blogLinq.BlogCreateDate;
             blogMetaData.LabelList      = new List <Label>(
                 blogLinq.Labels.Select(p => new Label
             {
                 Guid          = p.LabelGuid,
                 FriendlyTitle = p.LabelFriendlyTitle,
                 Title         = p.LabelTitle
             })
                 );
             blogMetaDataList.Add(blogMetaData);
         }
         //+
         return(blogMetaDataList);
     }
 }
Пример #5
0
        //- $TransformBlogEntryList -//
        private IQueryable <BlogEntry> TransformBlogEntryList(IQueryable <BlogEntryLINQ> blogEntryLinqList, BlogLINQ blogLinq, Boolean metaDataOnly)
        {
            Func <BlogEntryLINQ, BlogEntry> blogEntryTransformation = be => new BlogEntry
            {
                Title           = be.BlogEntryTitle,
                Content         = metaDataOnly ? String.Empty : be.BlogEntryText,
                Guid            = be.BlogEntryGuid,
                Status          = be.BlogEntryStatusId,
                PostDateTime    = be.BlogEntryPostDateTime,
                ModifyDateTime  = be.BlogEntryModifyDateTime,
                MappingNameList = new List <String>(
                    be.BlogEntryUrlMappings.Select(p => p.BlogEntryUrlMappingName)
                    ),
                LabelList = new List <Label>(
                    be.LabelBlogEntries.Select(p => new Label
                {
                    Guid          = p.Label.LabelGuid,
                    FriendlyTitle = p.Label.LabelFriendlyTitle,
                    Title         = p.Label.LabelTitle
                })
                    )
            };

            //+
            return((IQueryable <BlogEntry>)blogEntryLinqList.Select(blogEntryTransformation));
        }
Пример #6
0
 //- ~EnsureBlogExists -//
 internal static void EnsureBlogExists(String blogGuid, out BlogLINQ blogLinq, MinimaServiceLINQDataContext db)
 {
     EnsureBlogExists(blogGuid, out blogLinq, Message.InvalidBlogGuid, db);
 }