This commit is contained in:
@@ -8,6 +8,7 @@ using AyaNova.Api.ControllerHelpers;
|
|||||||
using AyaNova.Biz;
|
using AyaNova.Biz;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
namespace AyaNova.Api.Controllers
|
namespace AyaNova.Api.Controllers
|
||||||
{
|
{
|
||||||
@@ -155,26 +156,38 @@ namespace AyaNova.Api.Controllers
|
|||||||
[HttpGet("list")]
|
[HttpGet("list")]
|
||||||
public async Task<IActionResult> GetQueue()
|
public async Task<IActionResult> GetQueue()
|
||||||
{
|
{
|
||||||
if (!serverState.IsOpen)
|
if (!serverState.IsOpen)
|
||||||
return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason));
|
return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason));
|
||||||
|
|
||||||
//NOTE: in future if getting list for another user should just duplicate this method but add the parameter for user id
|
//NOTE: in future if getting list for another user should just duplicate this method but add the parameter for user id
|
||||||
//and checking of rights
|
//and checking of rights
|
||||||
long UserId = UserIdFromContext.Id(HttpContext.Items);
|
long UserId = UserIdFromContext.Id(HttpContext.Items);
|
||||||
|
|
||||||
var ret = await ct.NotifySubscription.Where(z => z.UserId == UserId).Select(z => new
|
var subs = await ct.NotifySubscription.AsNoTracking().Where(z => z.UserId == UserId).ToListAsync();
|
||||||
|
|
||||||
|
List<NotifySubscriptionRecord> ret = new List<NotifySubscriptionRecord>();
|
||||||
|
foreach (var s in subs)
|
||||||
{
|
{
|
||||||
z.Id,
|
ret.Add(new NotifySubscriptionRecord(s.Id, s.UserId, s.EventType, s.AyaType, s.DeliveryMethod, s.DeliveryAddress, s.Tags, await GetInfo(s, ct)));
|
||||||
z.UserId,
|
}
|
||||||
z.EventType,
|
|
||||||
z.AyaType,
|
|
||||||
z.DeliveryMethod,
|
|
||||||
z.DeliveryAddress,
|
|
||||||
z.Tags
|
|
||||||
}).ToListAsync();
|
|
||||||
return Ok(ApiOkResponse.Response(ret));
|
return Ok(ApiOkResponse.Response(ret));
|
||||||
}
|
}
|
||||||
|
private record NotifySubscriptionRecord(long id, long userid, NotifyEventType eventType, AyaType AyaType, NotifyDeliveryMethod deliveryMethod, string deliveryAddress, List<string> tags, string info);
|
||||||
|
|
||||||
|
//Provide extra info about subscription
|
||||||
|
private static async Task<string> GetInfo(NotifySubscription s, AyContext ct)
|
||||||
|
{
|
||||||
|
switch (s.EventType)
|
||||||
|
{
|
||||||
|
case NotifyEventType.WorkorderStatusAge:
|
||||||
|
case NotifyEventType.WorkorderStatusChange:
|
||||||
|
//add status text to info
|
||||||
|
return await ct.WorkOrderStatus.AsNoTracking().Where(x => x.Id == s.IdValue).Select(x => x.Name).FirstOrDefaultAsync();
|
||||||
|
default:
|
||||||
|
return string.Empty;
|
||||||
|
}
|
||||||
|
}
|
||||||
//------------
|
//------------
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user