EmailMessages improvements
This commit is contained in:
parent
db3dc17767
commit
f54a84aefd
|
|
@ -11,24 +11,53 @@ public static class AcEmailMessageDbSetExtension
|
|||
public static IQueryable<TEmailMessage> GetEmailMessagesByContextId<TEmailMessage>(this IAcEmailMessageDbSet<TEmailMessage> ctx, Guid contextId) where TEmailMessage : class, IAcEmailMessageBase
|
||||
=> ctx.EmailMessages.Where(x => x.ContextId == contextId);
|
||||
|
||||
public static IQueryable<TEmailMessage> GetEmailMessagesBySenderId<TEmailMessage>(this IAcEmailMessageDbSet<TEmailMessage> ctx, Guid senderId) where TEmailMessage : class, IAcEmailMessageBase
|
||||
=> ctx.EmailMessages.Where(x => x.SenderId == senderId);
|
||||
|
||||
public static IQueryable<TEmailMessage> GetEmailMessagesBySenderEmailAddress<TEmailMessage>(this IAcEmailMessageDbSet<TEmailMessage> ctx, string senderEmailAddress) where TEmailMessage : class, IAcEmailMessageBase
|
||||
=> ctx.EmailMessages.Where(x => x.EmailAddress == senderEmailAddress);
|
||||
|
||||
private static IQueryable<TEmailMessage> GetEmailMessages<TEmailMessage, TEmailRecipient>(this IQueryable<TEmailMessage> queryableEmails, Guid userId, Guid userProductMappingId)
|
||||
public static IQueryable<TEmailMessage> GetEmailMessagesBySenderId<TEmailMessage>(this IAcEmailMessageDbSet<TEmailMessage> ctx, Guid senderId) where TEmailMessage : class, IAcEmailMessageBase
|
||||
=> ctx.EmailMessages.Where(x => x.SenderId == senderId);
|
||||
|
||||
public static IQueryable<TEmailMessage> GetEmailMessagesByRecipientId<TEmailMessage, TEmailRecipient>(this IAcEmailMessageDbSet<TEmailMessage> ctx, Guid recipientId)
|
||||
where TEmailMessage : class, IAcEmailMessageBase, IAcEmailRecipientsRelation<TEmailRecipient>
|
||||
where TEmailRecipient : IAcEmailRecipientBase
|
||||
{
|
||||
return ctx.EmailMessages.Where(x => x.Recipients.Any(recipient => recipient.RecipientId == recipientId));
|
||||
}
|
||||
|
||||
private static IQueryable<TEmailMessage> GetEmailMessagesBySenderIdOrRecipientId<TEmailMessage, TEmailRecipient>(this IQueryable<TEmailMessage> queryableEmails, Guid senderIdOrRecipientId)
|
||||
where TEmailMessage : class, IAcEmailMessageBase, IAcEmailRecipientsRelation<TEmailRecipient>
|
||||
where TEmailRecipient : IAcEmailRecipientBase
|
||||
{
|
||||
return queryableEmails.Where(x => x.SenderId == senderIdOrRecipientId || x.Recipients.Any(recipient => recipient.RecipientId == senderIdOrRecipientId));
|
||||
}
|
||||
|
||||
public static IQueryable<TEmailMessage> GetEmailMessages<TEmailMessage, TEmailRecipient>(this IAcEmailMessageDbSet<TEmailMessage> ctx, Guid senderIdOrRecipientId)
|
||||
where TEmailMessage : class, IAcEmailMessageBase, IAcEmailRecipientsRelation<TEmailRecipient>
|
||||
where TEmailRecipient : IAcEmailRecipientBase
|
||||
{
|
||||
return ctx.EmailMessages.GetEmailMessagesBySenderIdOrRecipientId<TEmailMessage, TEmailRecipient>(senderIdOrRecipientId);
|
||||
}
|
||||
|
||||
public static IQueryable<TEmailMessage> GetEmailMessages<TEmailMessage, TEmailRecipient>(this IAcEmailMessageDbSet<TEmailMessage> ctx, Guid contextId, Guid senderIdOrRecipientId)
|
||||
where TEmailMessage : class, IAcEmailMessageBase, IAcEmailRecipientsRelation<TEmailRecipient>
|
||||
where TEmailRecipient : IAcEmailRecipientBase
|
||||
{
|
||||
return ctx.EmailMessages.Where(x => x.ContextId == contextId).GetEmailMessagesBySenderIdOrRecipientId<TEmailMessage, TEmailRecipient>(senderIdOrRecipientId);
|
||||
}
|
||||
|
||||
|
||||
private static IQueryable<TEmailMessage> GetEmailMessagesByUserIdOrUpmId<TEmailMessage, TEmailRecipient>(this IQueryable<TEmailMessage> queryableEmails, Guid userId, Guid userProductMappingId)
|
||||
where TEmailMessage : class, IAcEmailMessageBase, IAcEmailRecipientsRelation<TEmailRecipient>
|
||||
where TEmailRecipient : IAcEmailRecipientBase
|
||||
{
|
||||
return queryableEmails.Where(x => x.SenderId == userId || x.SenderId == userProductMappingId || x.Recipients.Any(recipient => recipient.RecipientId == userId || recipient.RecipientId == userProductMappingId));
|
||||
}
|
||||
|
||||
public static IQueryable<TEmailMessage> GetEmailMessages<TEmailMessage, TEmailRecipient>(this IAcEmailMessageDbSet<TEmailMessage> ctx, Guid userId, Guid userProductMappingId)
|
||||
public static IQueryable<TEmailMessage> GetEmailMessagesByUserIdOrUpmId<TEmailMessage, TEmailRecipient>(this IAcEmailMessageDbSet<TEmailMessage> ctx, Guid userId, Guid userProductMappingId)
|
||||
where TEmailMessage : class, IAcEmailMessageBase, IAcEmailRecipientsRelation<TEmailRecipient>
|
||||
where TEmailRecipient : IAcEmailRecipientBase
|
||||
{
|
||||
return ctx.EmailMessages.GetEmailMessages<TEmailMessage, TEmailRecipient>(userId, userProductMappingId);
|
||||
return ctx.EmailMessages.GetEmailMessagesByUserIdOrUpmId<TEmailMessage, TEmailRecipient>(userId, userProductMappingId);
|
||||
}
|
||||
|
||||
public static IQueryable<TEmailMessage> GetAllEmailMessages<TEmailMessage, TEmailRecipient>(this IAcEmailMessageDbSet<TEmailMessage> ctx)
|
||||
|
|
@ -42,7 +71,7 @@ public static class AcEmailMessageDbSetExtension
|
|||
where TEmailMessage : class, IAcEmailMessageBase, IAcEmailRecipientsRelation<TEmailRecipient>
|
||||
where TEmailRecipient : IAcEmailRecipientBase
|
||||
{
|
||||
return ctx.GetEmailMessagesByContextId(contextId).GetEmailMessages<TEmailMessage, TEmailRecipient>(userId, userProductMappingId);
|
||||
return ctx.GetEmailMessagesByContextId(contextId).GetEmailMessagesByUserIdOrUpmId<TEmailMessage, TEmailRecipient>(userId, userProductMappingId);
|
||||
}
|
||||
|
||||
#region Add, Update, Remove
|
||||
|
|
|
|||
Loading…
Reference in New Issue