can we create this using service pattern ?

using Microsoft.AspNetCore.Mvc;
using System.Diagnostics;
using System.Reflection;
using System.Security.Claims;

using System;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
using PortalHomeAPI.Models;

namespace PortalHomeAPI.Controllers
{
    [ApiController]
    [Route("api/[controller]")]
    public class HomeController : ControllerBase
    {
        private readonly ILogger<HomeController> _logger;
        private readonly IConfiguration _configuration;
        private readonly PortalDataContext _db;
        public HomeController(ILogger<HomeController> logger, IConfiguration configuration, PortalDataContext db)
        {
            _logger = logger;
            _configuration = configuration;
            _db = db;
        }

        //[Authorize(Roles = "test")]
        [HttpGet("Index")]
        public ActionResult<CKEditorModel> Index()
        {

            UserDetailsModel objuser = GetUserDetails();
            CKEditorModel obj = _db.Notification.OrderByDescending(x => x.Id).FirstOrDefault();

            if (obj != null)
            {
                TimeSpan span = DateTime.Now.Subtract(Convert.ToDateTime(obj.ExpirationDate));
                if (span.TotalMinutes >= 0)
                    obj = new CKEditorModel();
            }
            else
            {
                obj = new CKEditorModel();
            }

            return Ok(obj);
        }
        private UserDetailsModel GetUserDetails()
        {
            UserDetailsModel obj = new UserDetailsModel();
            string UserName = "default@berkleyenvironmental.com";
            if (User?.Identity?.IsAuthenticated ?? false)
            {
                var identity = User.Identity as System.Security.Claims.ClaimsIdentity;
                var claims = identity.Claims.ToLookup(x => x.Type);
                UserName = identity.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Email)?.Value;
            }
            obj.UserName = UserName;

            return obj;
        }
    }
}