示例#1
0
        public async Task <IActionResult> AddTopic(TopicViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var afc = new AddTopicCommand
            {
                Topic = new Topic
                {
                    Title          = model.Title,
                    Description    = model.Description,
                    ShowOnHomePage = model.ShowOnHomePage
                }
            };

            var result = await _cp.ProcessAsync(afc);

            if (result.Succeeded)
            {
                _logger.LogInformation("Added Topic {0}.", model.Title);

                return(RedirectToAction("ManageTopics"));
            }
            _logger.LogWarning("Unable to add Topic {0}.", model.Title);

            // todo: better error handling
            ModelState.AddModelError("Error", "Unable to add topic, perhaps the title is not unique.");
            return(View(model));
        }
示例#2
0
        private static async Task HandleNewTopicAsync()
        {
            var newTopic = RequestNewTopic();
            var data     = AddTopicCommand.FromTopic(newTopic);
            var header   = new Header
            {
                Command    = CommandType.NewTopic,
                DataLength = data.Length,
                Type       = HeaderType.Request
            };

            await EncodeHeaderAndSendAsync(header);
            await SendCommandDataAsync(data);

            var response = await ReceiveServerResponseAsync();

            PrintServerResponse(response);
        }