public async Task <ServiceResult <CreatedForm> > Reply([FromBody] MakeReplyForm makeReplyForm) { CreatedForm created = new CreatedForm { }; var user = await AccountService.UserFromId(makeReplyForm.UserId); if (user.State != ServiceResultEnum.Exist) { return(Result(user.State, created, user.Detail)); } var topic = await TopicService.TopicFromId(makeReplyForm.TopicId); if (topic.State != ServiceResultEnum.Exist) { return(Result(topic.State, created, topic.Detail)); } Reply reply = null; if (makeReplyForm.ReferenceId != null) { var _reply = await TopicService.ReplyFromId(makeReplyForm.ReferenceId ?? 0); if (_reply.State == ServiceResultEnum.Exist) { reply = _reply.ExtraData; } } var result = await TopicService.MakeReply(user.ExtraData, topic.ExtraData, reply, makeReplyForm.Content, makeReplyForm.Images); created.CreatedId = result.ExtraData?.Id; return(Result(result.State, created, result.Detail)); }
public async Task <ServiceResult <CreatedForm> > CreateTopic([FromBody] CreateTopicForm createTopicForm) { CreatedForm created = new CreatedForm { }; var zone = await TopicService.ZoneFromId(createTopicForm.ZoneId); if (zone.State != ServiceResultEnum.Exist) { return(Result(zone.State, created, zone.Detail)); } var user = await AccountService.UserFromId(createTopicForm.UserId); if (user.State != ServiceResultEnum.Exist) { return(Result(user.State, created, user.Detail)); } var tags = await TagService.TagsFromStrings(createTopicForm.Tags); if (tags.State != ServiceResultEnum.Exist) { return(Result(tags.State, created, tags.Detail)); } var result = await TopicService.Create(createTopicForm.Title, user.ExtraData, zone.ExtraData, tags.ExtraData, createTopicForm.Content, createTopicForm.Images); created.CreatedId = result.ExtraData?.Id; return(Result(result.State, created, result.Detail)); }