Messages improvements, fixes...
This commit is contained in:
parent
f54a84aefd
commit
fc4966c0dd
|
|
@ -0,0 +1,12 @@
|
|||
namespace AyCode.Core.Enums;
|
||||
|
||||
public enum MessageContextType : byte
|
||||
{
|
||||
Unset = 0,
|
||||
System = 5,
|
||||
Private = 10,
|
||||
Group = 15,
|
||||
Transfer = 20,
|
||||
Product = 25,
|
||||
Company = 30,
|
||||
}
|
||||
|
|
@ -74,6 +74,27 @@ public static class AcEmailMessageDbSetExtension
|
|||
return ctx.GetEmailMessagesByContextId(contextId).GetEmailMessagesByUserIdOrUpmId<TEmailMessage, TEmailRecipient>(userId, userProductMappingId);
|
||||
}
|
||||
|
||||
private static IQueryable<TEmailMessage> GetEmailMessagesByIds<TEmailMessage, TEmailRecipient>(this IQueryable<TEmailMessage> queryableEmails, IQueryable<Guid> ids)
|
||||
where TEmailMessage : class, IAcEmailMessageBase, IAcEmailRecipientsRelation<TEmailRecipient>
|
||||
where TEmailRecipient : IAcEmailRecipientBase
|
||||
{
|
||||
return queryableEmails.Where(x => ids.Any(id => id == x.SenderId) || x.Recipients.Any(recipient => ids.Any(id => id == recipient.RecipientId)));
|
||||
}
|
||||
|
||||
public static IQueryable<TEmailMessage> GetEmailMessagesByIds<TEmailMessage, TEmailRecipient>(this IAcEmailMessageDbSet<TEmailMessage> ctx, IQueryable<Guid> ids)
|
||||
where TEmailMessage : class, IAcEmailMessageBase, IAcEmailRecipientsRelation<TEmailRecipient>
|
||||
where TEmailRecipient : IAcEmailRecipientBase
|
||||
{
|
||||
return ctx.EmailMessages.GetEmailMessagesByIds<TEmailMessage, TEmailRecipient>(ids);
|
||||
}
|
||||
|
||||
public static IQueryable<TEmailMessage> GetEmailMessagesByIds<TEmailMessage, TEmailRecipient>(this IAcEmailMessageDbSet<TEmailMessage> ctx, Guid contextId, IQueryable<Guid> ids)
|
||||
where TEmailMessage : class, IAcEmailMessageBase, IAcEmailRecipientsRelation<TEmailRecipient>
|
||||
where TEmailRecipient : IAcEmailRecipientBase
|
||||
{
|
||||
return ctx.GetEmailMessagesByContextId(contextId).GetEmailMessagesByIds<TEmailMessage, TEmailRecipient>(ids);
|
||||
}
|
||||
|
||||
#region Add, Update, Remove
|
||||
|
||||
public static bool AddEmailMessage<TEmailMessage>(this IAcEmailMessageDbSet<TEmailMessage> ctx, TEmailMessage emailMessage) where TEmailMessage : class, IAcEmailMessageBase
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using System.Net.Mail;
|
||||
using AyCode.Core.Enums;
|
||||
using AyCode.Interfaces.Messages;
|
||||
|
||||
namespace AyCode.Entities.Messages;
|
||||
|
|
@ -27,6 +28,7 @@ public abstract class AcEmailMessage<TEmailRecipient> : IAcEmailMessage<TEmailRe
|
|||
|
||||
public Guid ContextId { get; set; }
|
||||
public Guid? SenderId { get; set; }
|
||||
public MessageContextType ContextType { get; set; }
|
||||
|
||||
public virtual List<TEmailRecipient> Recipients { get; set; } = [];
|
||||
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ public abstract class AcEmailRecipient<TEmailMessage> : IAcEmailRecipient<TEmail
|
|||
public Guid RecipientId { get; set; }
|
||||
public Guid EmailMessageId { get; set; }
|
||||
public string EmailAddress { get; set; }
|
||||
|
||||
public bool IsReaded { get; set; }
|
||||
|
||||
public virtual TEmailMessage EmailMessage { get; set; }
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
using AyCode.Interfaces.Entities;
|
||||
using AyCode.Core.Enums;
|
||||
using AyCode.Interfaces.Entities;
|
||||
using AyCode.Interfaces.TimeStampInfo;
|
||||
using AyCode.Interfaces.Users;
|
||||
|
||||
|
|
@ -10,6 +11,8 @@ public interface IAcEmailMessageBase : IEntityGuid, ITimeStampInfo, IAcEmailAddr
|
|||
public Guid ContextId { get; set; }
|
||||
public Guid? SenderId { get; set; }
|
||||
|
||||
public MessageContextType ContextType { get; set; }
|
||||
|
||||
public string Subject { get; set; }
|
||||
public string? Text { get; set; }
|
||||
public bool IsReaded { get; set; }
|
||||
|
|
|
|||
|
|
@ -8,4 +8,5 @@ public interface IAcEmailRecipientBase : IEntityGuid, ITimeStampInfo, IAcEmailAd
|
|||
{
|
||||
public Guid RecipientId { get; set; }
|
||||
public Guid EmailMessageId { get; set; }
|
||||
public bool IsReaded { get; set; }
|
||||
}
|
||||
Loading…
Reference in New Issue