/// <summary>
        /// Asynchronously update the <see cref="ArticleSettings" /> .
        /// </summary>
        /// <param name="settings">The new or existing <see cref="ArticleSettings" /> .</param>
        /// <returns>True if successfully updated <see cref="ArticleSettings" />.</returns>
        public virtual async Task <bool> UpdateAsync(ArticleSettings settings)
        {
            try
            {
                using (IBaasicClient client = BaasicClientFactory.Create(Configuration))
                {
                    var result = await client.PutAsync <ArticleSettings, HttpStatusCode>(client.GetApiUrl(string.Format("{0}/{1}", ModuleRelativePath, settings.Id)), settings);

                    switch (result)
                    {
                    case System.Net.HttpStatusCode.Created:
                    case System.Net.HttpStatusCode.NoContent:
                    case System.Net.HttpStatusCode.OK:
                        return(true);

                    default:
                        return(false);
                    }
                }
            }
            catch (BaasicClientException ex)
            {
                if (ex.ErrorCode == (int)HttpStatusCode.NotFound)
                {
                    return(false);
                }
                throw;
            }
            catch (Exception)
            {
                throw;
            }
        }
示例#2
0
文件: Article.cs 项目: geeking/Jiavs
 public Article(ArticleContent content, ArticleStatus status, ArticleSettings settings, uint ownerId) : this(content, status, settings)
 {
     this.Author = new ArticleUser()
     {
         Id = ownerId
     };
 }
示例#3
0
 public HomeController(IArticleService articleService, ICategoryService categoryService,
                       IPictureService pictureService, ArticleSettings articleSettings)
 {
     this._articleService  = articleService;
     this._categoryService = categoryService;
     this._pictureService  = pictureService;
     this._articleSettings = articleSettings;
 }
示例#4
0
 public ArticleUpdateCommand(uint articleId, ArticleContent content, ArticleSettings settings, ArticleStatus status)
 {
     this.Id       = articleId;
     this.Content  = content;
     this.Settings = settings;
     this.Status   = status;
     if (this.Status != null)
     {
         Status.ModifyTime = DateTime.UtcNow;
     }
 }
示例#5
0
文件: Article.cs 项目: geeking/Jiavs
 private Article(ArticleContent content, ArticleStatus status, ArticleSettings settings)
 {
     if (status.CreatedTime == null)
     {
         Status.CreatedTime = DateTime.UtcNow;
         Status.ModifyTime  = DateTime.UtcNow;
     }
     this.Content  = content;
     this.Status   = status;
     this.Settings = settings;
 }
示例#6
0
 public ArticleAddCommand(ArticleContent content, ArticleSettings settings, ArticleStatus status, uint authorId)
 {
     this.Content  = content;
     this.Settings = settings;
     this.Status   = status;
     this.AuthorId = authorId;
     if (this.Status != null)
     {
         Status.CreatedTime = DateTime.UtcNow;
         if (Status.IsPublished)
         {
             Status.PublishTime = DateTime.UtcNow;
         }
     }
 }
示例#7
0
        /// <summary>
        /// 添加文章命令处理器
        /// </summary>
        /// <param name="request"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public Task <bool> Handle(ArticleAddCommand request, CancellationToken cancellationToken)
        {
            if (!request.IsValid())
            {
                return(Task.FromResult(false));
            }
            var content    = new ArticleContent(request.Content.Title, request.Content.CoverUrl, request.Content.Summary, request.Content.ContentHtml, request.Content.ContentMarkdown);
            var settings   = new ArticleSettings();
            var status     = new ArticleStatus();
            var newArticle = new Article(content, status, settings, request.AuthorId);

            _articleRepository.Add(newArticle);

            var commitResult = Commit();

            return(Task.FromResult(commitResult));
        }
示例#8
0
 public ArticleRenderer(ArticleSettings articleSettings)
 {
     this.articleSettings = articleSettings;
 }
示例#9
0
 public static ArticleSettings ToEntity(this ArticleSettingsModel model, ArticleSettings destination)
 {
     return(model.MapTo(destination));
 }
示例#10
0
 public static ArticleSettingsModel ToModel(this ArticleSettings entity)
 {
     return(entity.MapTo <ArticleSettings, ArticleSettingsModel>());
 }
示例#11
0
文件: Article.cs 项目: geeking/Jiavs
 public Article(ArticleContent content, ArticleStatus status, ArticleSettings settings, ArticleUser author) : this(content, status, settings)
 {
     this.Author = author;
 }
示例#12
0
        public void AutomaticFixupTest()
        {
            var metadataModelBuilder = new MetadataModelBuilder();

            metadataModelBuilder.Entity <ArticleName>().PrimaryKey.AddRange(new[] { "ArticleId", "LanguageId" });
            var articleEntity = metadataModelBuilder.Entity <Article>();

            metadataModelBuilder.Entity <ReceiptDetail>();
            metadataModelBuilder.Entity <Invoice>().BaseEntity = metadataModelBuilder.Entity(typeof(Receipt));
            var contactSettings = metadataModelBuilder.Entity <ContactSettings>();

            articleEntity.HasOne(p => p.ArticleSettings).WithPrincipal();
            contactSettings.HasOne(p => p.Contact).WithDependant();

            metadataModelBuilder.ApplyConventions();

            var invoice = new Invoice {
                Id = Guid.NewGuid()
            };
            var article = new Article {
                Id = Guid.NewGuid(), ArticleNumber = "12314", SupplierId = Guid.NewGuid(), ArticleDescription = "testchen"
            };

            var detail = new ReceiptDetail {
                Id = Guid.NewGuid(), Receipt = invoice, ReceiptId = invoice.Id, Amount = 123, ArticleId = article.Id
            };

            invoice.Details.Add(detail);

            var name1 = new ArticleName {
                ArticleId = article.Id, LanguageId = "de", TranlatedText = "Text 1"
            };
            var name2 = new ArticleName {
                ArticleId = article.Id, LanguageId = "en", TranlatedText = "Text 1"
            };

            var context = new ModelContext(metadataModelBuilder.ToModel());

            context.Attach(new[] { name1, name2 });
            context.AttachSingle(article);

            Assert.Equal(article, name1.Article);
            Assert.Equal(article, name2.Article);
            Assert.Equal(2, article.Names.Count);
            Assert.Contains(article.Names, p => p == name1);
            Assert.Contains(article.Names, p => p == name2);

            context.AttachSingle(invoice);

            Assert.Equal(article, detail.Article);

            Assert.Null(article.ArticleSettings);

            var articleSettings = new ArticleSettings {
                Id = article.Id, Whatever = "test"
            };

            context.AttachSingle(articleSettings);

            Assert.Equal(article.ArticleSettings, articleSettings);
        }