Example #1
0
        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));
        }
Example #2
0
        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);
        }