Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

HomeController.cs 1.7KB

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