Skip to content

Commit 47ee9d9

Browse files
Move QueuedEmail method to CommonController
1 parent 5da2121 commit 47ee9d9

File tree

3 files changed

+43
-37
lines changed

3 files changed

+43
-37
lines changed

src/Web/Grand.Web/Controllers/CommonController.cs

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using Grand.Business.Core.Interfaces.Common.Localization;
44
using Grand.Business.Core.Interfaces.Common.Stores;
55
using Grand.Business.Core.Interfaces.Customers;
6+
using Grand.Business.Core.Interfaces.Messages;
67
using Grand.Domain.Common;
78
using Grand.Domain.Customers;
89
using Grand.Domain.Localization;
@@ -19,6 +20,7 @@
1920
using Grand.Web.Features.Models.Common;
2021
using Grand.Web.Models.Common;
2122
using MediatR;
23+
using Microsoft.AspNetCore.Authorization;
2224
using Microsoft.AspNetCore.Http;
2325
using Microsoft.AspNetCore.Mvc;
2426
using System.Net;
@@ -375,7 +377,8 @@ public virtual async Task<IActionResult> PrivacyPreference([FromServices] StoreI
375377
Store = _workContext.CurrentStore
376378
});
377379

378-
return Json(new {
380+
return Json(new
381+
{
379382
html = await this.RenderPartialViewToString("PrivacyPreference", model, true),
380383
model
381384
});
@@ -455,5 +458,43 @@ public virtual async Task<IActionResult> SaveCurrentPosition(
455458
return Content("");
456459
}
457460

461+
[AllowAnonymous]
462+
[IgnoreApi]
463+
[HttpGet]
464+
public virtual async Task<IActionResult> QueuedEmail([FromServices] IQueuedEmailService queuedEmailService, string emailId)
465+
{
466+
if (string.IsNullOrEmpty(emailId))
467+
{
468+
return GetTrackingPixel();
469+
}
470+
471+
var isFromAdmin = Request.GetTypedHeaders().Referer?.ToString()?.Contains("admin/queuedemail/edit/",
472+
StringComparison.OrdinalIgnoreCase) ?? false;
473+
474+
if (!isFromAdmin)
475+
{
476+
var queuedEmail = await queuedEmailService.GetQueuedEmailById(emailId);
477+
if (queuedEmail != null && queuedEmail.ReadOnUtc == null)
478+
{
479+
queuedEmail.ReadOnUtc = DateTime.UtcNow;
480+
await queuedEmailService.UpdateQueuedEmail(queuedEmail);
481+
}
482+
}
483+
484+
return GetTrackingPixel();
485+
486+
IActionResult GetTrackingPixel()
487+
{
488+
489+
const string TRACKING_PIXEL = "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=";
490+
return File(
491+
Convert.FromBase64String(TRACKING_PIXEL),
492+
"image/png",
493+
"pixel.png"
494+
);
495+
}
496+
497+
}
498+
458499
#endregion
459500
}

src/Web/Grand.Web/Controllers/PixelController.cs

Lines changed: 0 additions & 35 deletions
This file was deleted.

src/Web/Grand.Web/Endpoints/EndpointProvider.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -453,7 +453,7 @@ private void RegisterCmsRoute(IEndpointRouteBuilder endpointRouteBuilder, string
453453
//pixel
454454
endpointRouteBuilder.MapControllerRoute("PixelQueuedEmail",
455455
"queuedemail/pixel.png",
456-
new { controller = "Pixel", action = "QueuedEmail" });
456+
new { controller = "Common", action = "QueuedEmail" });
457457
}
458458

459459
private void RegisterBlogRoute(IEndpointRouteBuilder endpointRouteBuilder, string pattern)

0 commit comments

Comments
 (0)