Exemple #1
0
        async Task AddAssets(IList <string> assets, BlogPost post, IBlogStorage storage, bool isAttachement)
        {
            if (assets.Any())
            {
                foreach (var item in assets)
                {
                    var uri = "";
                    try
                    {
                        uri = ValidateUrl(item);

                        var path = string.Format("{0}/{1}", post.Published.Year, post.Published.Month);

                        var asset = await storage.UploadFromWeb(new Uri(uri), _model.Root, path);

                        asset.ProfileId   = post.ProfileId;
                        asset.LastUpdated = SystemClock.Now();

                        if (isAttachement)
                        {
                            asset.AssetType = AssetType.Attachment;
                        }

                        post.Content = post.Content.ReplaceIgnoreCase(uri.ToString(), asset.Url);

                        _db.Assets.Add(asset);
                        _db.Complete();
                    }
                    catch (Exception ex)
                    {
                        _logger.LogError(string.Format("Error importing [{0}] : {1}", item, ex.Message));
                    }
                }
            }
        }
Exemple #2
0
        async Task ImportAttachements(BlogPost post, IBlogStorage storage)
        {
            var attachements = GetAttachements(post.Content);

            await AddAssets(attachements, post, storage, true);
        }
Exemple #3
0
        async Task ImportImages(BlogPost post, IBlogStorage storage)
        {
            var images = GetImages(post.Content);

            await AddAssets(images, post, storage, false);
        }
Exemple #4
0
 static Post()
 {
     AssemblyCatalog catalog = new AssemblyCatalog(typeof(Post).Assembly);
     CompositionContainer container = new CompositionContainer(catalog);
     _storage = container.GetExportedValues<IBlogStorage>().ElementAt(0);
 }