示例#1
0
        public async Task <IActionResult> Create(int id = 0)
        {
            var board = BoardRepository.First(item => item.Id == id);

            if (Request.Query.TryGetValue("source", out var source))
            {
                return(await Create(new InputModels.MessageInput {
                    BoardId = id, Body = source
                }));
            }

            var viewModel = new ViewModels.Messages.CreateTopicPage {
                BoardId = id
            };

            return(ForumViewResult.ViewResult(this, viewModel));
        }
示例#2
0
        public async Task <IActionResult> Edit(InputModels.MessageInput input)
        {
            if (ModelState.IsValid)
            {
                var serviceResponse = await MessageRepository.EditMessage(input);

                return(await ForumViewResult.RedirectFromService(this, serviceResponse, FailureCallback));
            }

            return(await FailureCallback());

            async Task <IActionResult> FailureCallback()
            {
                var viewModel = new ViewModels.Messages.CreateTopicPage {
                    Body = input.Body
                };

                return(await Task.Run(() => { return ForumViewResult.ViewResult(this, viewModel); }));
            }
        }
示例#3
0
        public async Task <IActionResult> Create(InputModels.MessageInput input)
        {
            if (ModelState.IsValid)
            {
                if (Request.Method == "GET" && input.BoardId != null)
                {
                    input.SelectedBoards.Add((int)input.BoardId);
                }
                else
                {
                    foreach (var board in BoardRepository)
                    {
                        if (Request.Form.TryGetValue("Selected_" + board.Id, out var boardSelected))
                        {
                            if (boardSelected == "True")
                            {
                                input.SelectedBoards.Add(board.Id);
                            }
                        }
                    }
                }

                var serviceResponse = await MessageRepository.CreateTopic(input);

                return(await ForumViewResult.RedirectFromService(this, serviceResponse, FailureCallback));
            }

            return(await FailureCallback());

            async Task <IActionResult> FailureCallback()
            {
                var viewModel = new ViewModels.Messages.CreateTopicPage()
                {
                    BoardId = input.BoardId,
                    Body    = input.Body
                };

                return(await Task.Run(() => { return ForumViewResult.ViewResult(this, viewModel); }));
            }
        }