您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

HomeController.cs 1.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. using System.Threading.Tasks;
  2. using Microsoft.AspNetCore.Authorization;
  3. using Microsoft.AspNetCore.Mvc;
  4. using Microsoft.Extensions.Logging;
  5. using SecureSharing.Business.Dtos;
  6. using SecureSharing.Business.Interfaces;
  7. using SecureSharing.Infrastructure;
  8. using SecureSharing.Models;
  9. namespace SecureSharing.Controllers;
  10. [Authorize]
  11. public sealed class HomeController : Controller
  12. {
  13. private readonly ILogger<HomeController> _logger;
  14. private readonly IMessageService _messageService;
  15. private readonly IModelFactory _modelFactory;
  16. public HomeController(ILogger<HomeController> logger, IMessageService messageService, IModelFactory modelFactory)
  17. {
  18. _logger = logger;
  19. _messageService = messageService;
  20. _modelFactory = modelFactory;
  21. }
  22. public IActionResult Index()
  23. {
  24. return View();
  25. }
  26. [HttpPost]
  27. public async Task<IActionResult> CreateMessage(MessageModel model)
  28. {
  29. var message = new MessageDto { Text = model.Text };
  30. var id = await _messageService.Create(message, model.ChosenPeriod);
  31. return RedirectToAction("Link", "Home", new { id, share = true });
  32. }
  33. [HttpGet]
  34. public async Task<IActionResult> Link(int id, bool? share)
  35. {
  36. var model = await _modelFactory.PrepareLinkVM(id, share);
  37. return View(model);
  38. }
  39. public IActionResult Privacy()
  40. {
  41. return View();
  42. }
  43. }