75 lines
2.3 KiB
C#
75 lines
2.3 KiB
C#
using AutoMapper;
|
|
using IM_API.Dtos;
|
|
using IM_API.Exceptions;
|
|
using IM_API.Interface.Services;
|
|
using IM_API.Models;
|
|
using IM_API.Tools;
|
|
using Microsoft.EntityFrameworkCore;
|
|
|
|
namespace IM_API.Services
|
|
{
|
|
public class MessageService : IMessageSevice
|
|
{
|
|
private readonly ImContext _context;
|
|
private readonly ILogger<MessageService> _logger;
|
|
private readonly IMapper _mapper;
|
|
public MessageService(ImContext context, ILogger<MessageService> logger, IMapper mapper)
|
|
{
|
|
_context = context;
|
|
_logger = logger;
|
|
_mapper = mapper;
|
|
}
|
|
|
|
public Task<List<MessageBaseDto>> GetGroupMessagesAsync(int groupId, int page, int pageSize, bool desc)
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
public Task<List<MessageBaseDto>> GetPrivateMessagesAsync(int userAId, int userBId, int page, int pageSize, bool desc)
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
public Task<int> GetUnreadCountAsync(int userId)
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
public Task<List<MessageBaseDto>> GetUnreadMessagesAsync(int userId)
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
public Task<bool> MarkAsReadAsync(int userId, long messageId)
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
public Task<bool> MarkConversationAsReadAsync(int userId, int? userBId, int? groupId)
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
public Task<bool> RecallMessageAsync(int userId, int messageId)
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
public Task<bool> SendGroupMessageAsync(int senderId, int groupId, MessageBaseDto dto)
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
public async Task<bool> SendPrivateMessageAsync(int senderId, int receiverId, MessageBaseDto dto)
|
|
{
|
|
bool isExist = await _context.Friends.AnyAsync(x => x.FriendId == receiverId);
|
|
if (!isExist) throw new BaseException(CodeDefine.FRIEND_RELATION_NOT_FOUND);
|
|
var message = _mapper.Map<Message>(dto);
|
|
message.Sender = senderId;
|
|
_context.Messages.Add(message);
|
|
await _context.SaveChangesAsync();
|
|
return true;
|
|
}
|
|
}
|
|
}
|