public ActionResult Create(TopicCreateModel model) { bool ok = true; if (ModelState.IsValid) { TopicCreateDTO topicDTO = Mapper.Map <TopicCreateModel, TopicCreateDTO>(model); ServiceMessage serviceMessage = service.Create(topicDTO); if (!serviceMessage.Succeeded) { foreach (string error in serviceMessage.Errors) { ModelState.AddModelError("", error); } ok = false; } } else { ok = false; } return(ok ? RedirectToAction("List") as ActionResult : View(model)); }
private async Task <IPBPublishRecord> CreateOrUpdateContentPostAsync(IPBPublishRecord record, IContentItem item, Site site, IPBPublishConfig config) { if (_contentRender == null) { throw new ArgumentException("No content renderer is registered!"); } var apiClient = _apiClientFactory.GetPublishClient(); if (record.TopicId == 0) { var topic = new TopicCreateModel { Forum = config.ForumId, Title = item.Title, Hidden = !item.IsPublished ? 1 : 0, Post = await _contentRender.RenderHtmlAsync(item, site), Author = int.Parse(config.AuthorId) }; var createdTopic = await apiClient.PostAsync <TopicCreateModel, Topic>("forums/topics", topic); if (createdTopic.FirstPost != null) { record.TopicId = createdTopic.Id; record.PostId = createdTopic.FirstPost.Id; } } else { await apiClient.PostAsync <TopicCreateModel, Topic>( $"forums/topics/{record.TopicId.ToString()}", new TopicCreateModel { Title = item.Title, Hidden = !item.IsPublished ? 1 : 0, Author = int.Parse(config.AuthorId), Forum = config.ForumId, Post = await _contentRender.RenderHtmlAsync(item, site) }); } return(record); }