BetterCms.Module.Blog.Services.DefaultBlogMLService.ValidateImport C# (CSharp) Метод

ValidateImport() публичный Метод

public ValidateImport ( BlogMLBlog blogPosts ) : List
blogPosts BlogMLBlog
Результат List
        public List<BlogPostImportResult> ValidateImport(BlogMLBlog blogPosts)
        {
            var result = new List<BlogPostImportResult>();
            var unsavedUrls = new List<string>();

            if (blogPosts != null && blogPosts.Posts != null)
            {
                foreach (var blogML in blogPosts.Posts)
                {
                    // Validate authors
                    if (blogML.Authors != null &&
                        blogML.Authors.Count > 0 &&
                        (blogPosts.Authors == null || blogPosts.Authors.All(a => a.ID != blogML.Authors[0].Ref)))
                    {
                        var failedResult = CreateFailedResult(blogML);
                        failedResult.ErrorMessage = string.Format(BlogGlobalization.ImportBlogPosts_AuthorByRefNotFound_Message, blogML.Authors[0].Ref);
                        result.Add(failedResult);

                        continue;
                    }
                    
                    var blogPostModel = MapViewModel(blogML, null, unsavedUrls);
                    unsavedUrls.Add(blogPostModel.BlogUrl);

                    BlogPostImportResult blogPost;
                    if (!ValidateModel(blogPostModel, blogML, out blogPost))
                    {
                        result.Add(blogPost);
                        continue;
                    }

                    blogPost = new BlogPostImportResult
                        {
                            Title = blogML.PostName ?? blogML.Title,
                            PageUrl = blogPostModel.BlogUrl,
                            Success = true,
                            Id = blogML.ID
                        };
                    result.Add(blogPost);
                }

                // Validate for duplicate IDS
                result
                    .Where(bp => bp.Success)
                    .GroupBy(bp => bp.Id)
                    .Where(group => group.Count() > 1)
                    .ToList()
                    .ForEach(group => group
                        .ToList()
                        .ForEach(
                            bp =>
                            {
                                bp.Success = false;
                                bp.ErrorMessage = string.Format(BlogGlobalization.ImportBlogPosts_DuplicateId_Message, group.Key);
                            }));
            }

            return result;
        }