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);
|
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
|
#region Add, Update, Remove
|
||||||
|
|
||||||
public static bool AddEmailMessage<TEmailMessage>(this IAcEmailMessageDbSet<TEmailMessage> ctx, TEmailMessage emailMessage) where TEmailMessage : class, IAcEmailMessageBase
|
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;
|
||||||
using System.ComponentModel.DataAnnotations.Schema;
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
using System.Net.Mail;
|
using System.Net.Mail;
|
||||||
|
using AyCode.Core.Enums;
|
||||||
using AyCode.Interfaces.Messages;
|
using AyCode.Interfaces.Messages;
|
||||||
|
|
||||||
namespace AyCode.Entities.Messages;
|
namespace AyCode.Entities.Messages;
|
||||||
|
|
@ -27,6 +28,7 @@ public abstract class AcEmailMessage<TEmailRecipient> : IAcEmailMessage<TEmailRe
|
||||||
|
|
||||||
public Guid ContextId { get; set; }
|
public Guid ContextId { get; set; }
|
||||||
public Guid? SenderId { get; set; }
|
public Guid? SenderId { get; set; }
|
||||||
|
public MessageContextType ContextType { get; set; }
|
||||||
|
|
||||||
public virtual List<TEmailRecipient> Recipients { 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 RecipientId { get; set; }
|
||||||
public Guid EmailMessageId { get; set; }
|
public Guid EmailMessageId { get; set; }
|
||||||
public string EmailAddress { get; set; }
|
public string EmailAddress { get; set; }
|
||||||
|
public bool IsReaded { get; set; }
|
||||||
|
|
||||||
public virtual TEmailMessage EmailMessage { 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.TimeStampInfo;
|
||||||
using AyCode.Interfaces.Users;
|
using AyCode.Interfaces.Users;
|
||||||
|
|
||||||
|
|
@ -10,6 +11,8 @@ public interface IAcEmailMessageBase : IEntityGuid, ITimeStampInfo, IAcEmailAddr
|
||||||
public Guid ContextId { get; set; }
|
public Guid ContextId { get; set; }
|
||||||
public Guid? SenderId { get; set; }
|
public Guid? SenderId { get; set; }
|
||||||
|
|
||||||
|
public MessageContextType ContextType { get; set; }
|
||||||
|
|
||||||
public string Subject { get; set; }
|
public string Subject { get; set; }
|
||||||
public string? Text { get; set; }
|
public string? Text { get; set; }
|
||||||
public bool IsReaded { get; set; }
|
public bool IsReaded { get; set; }
|
||||||
|
|
|
||||||
|
|
@ -8,4 +8,5 @@ public interface IAcEmailRecipientBase : IEntityGuid, ITimeStampInfo, IAcEmailAd
|
||||||
{
|
{
|
||||||
public Guid RecipientId { get; set; }
|
public Guid RecipientId { get; set; }
|
||||||
public Guid EmailMessageId { get; set; }
|
public Guid EmailMessageId { get; set; }
|
||||||
|
public bool IsReaded { get; set; }
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue