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 _logger; private readonly IMapper _mapper; public MessageService(ImContext context, ILogger logger, IMapper mapper) { _context = context; _logger = logger; _mapper = mapper; } public Task> GetGroupMessagesAsync(int groupId, int page, int pageSize, bool desc) { throw new NotImplementedException(); } public Task> GetPrivateMessagesAsync(int userAId, int userBId, int page, int pageSize, bool desc) { throw new NotImplementedException(); } public Task GetUnreadCountAsync(int userId) { throw new NotImplementedException(); } public Task> GetUnreadMessagesAsync(int userId) { throw new NotImplementedException(); } public Task MarkAsReadAsync(int userId, long messageId) { throw new NotImplementedException(); } public Task MarkConversationAsReadAsync(int userId, int? userBId, int? groupId) { throw new NotImplementedException(); } public Task RecallMessageAsync(int userId, int messageId) { throw new NotImplementedException(); } public Task SendGroupMessageAsync(int senderId, int groupId, MessageBaseDto dto) { throw new NotImplementedException(); } public async Task 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(dto); message.Sender = senderId; _context.Messages.Add(message); await _context.SaveChangesAsync(); return true; } } }