Files
moadiran/Back/Services/servNotification.cs
2024-06-25 17:14:08 +03:30

34 lines
1.3 KiB
C#

using Back.Data.Contracts;
using Back.Data.Models;
using Microsoft.EntityFrameworkCore;
namespace Back.Services
{
public class servNotification
{
private readonly IAsyncRepository<Notification> _NotificationRepo;
private readonly IAsyncRepository<UserNotfi> _UserNotfiRepo;
public servNotification(IAsyncRepository<Notification> NotificationRepo, IAsyncRepository<UserNotfi> userNotfiRepo)
{
_NotificationRepo = NotificationRepo;
_UserNotfiRepo = userNotfiRepo;
}
public async Task<bool> ReadNotification(int UserID,int ntID)
{
if (!await _UserNotfiRepo.Get(w => w.UserID == UserID && w.NotificationID == ntID).AnyAsync())
return await _UserNotfiRepo.AddBoolResultAsync(new UserNotfi
{
NotificationID = ntID,
UserID = UserID,
});
else return true;
}
public async Task<List<Notification>> GetNotifications(int UserID)
{
var readmsg=await _UserNotfiRepo.Get(w => w.UserID == UserID).Select(s=>s.NotificationID).ToListAsync();
return await _NotificationRepo.Get(w=>(string.IsNullOrEmpty(w.ForUser) || w.ForUser.Contains("/"+UserID.ToString()+"/"))&& !readmsg.Contains(w.ID)).ToListAsync();
}
}
}