56 lines
1.9 KiB
C#
56 lines
1.9 KiB
C#
using AutoMapper;
|
|
using IRaCIS.Application.Interfaces;
|
|
using IRaCIS.Application.ViewModels;
|
|
using IRaCIS.Core.Application.Contracts.RequestAndResponse;
|
|
using IRaCIS.Core.Domain.Interfaces;
|
|
using IRaCIS.Core.Domain.Models;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Linq.Expressions;
|
|
|
|
namespace IRaCIS.Application.Services
|
|
{
|
|
public class MessageService : IMessageService
|
|
{
|
|
private readonly IMessageRepository _sysMessageRepository;
|
|
private readonly IMapper _mapper;
|
|
|
|
public MessageService(IMessageRepository sysMessageRepository,IMapper mapper)
|
|
{
|
|
_sysMessageRepository = sysMessageRepository;
|
|
_mapper = mapper;
|
|
}
|
|
|
|
public IResponseOutput DeleteSysMessage(Guid messageId)
|
|
{
|
|
var success= _sysMessageRepository.Delete(m => m.Id == messageId);
|
|
return ResponseOutput.Result(success);
|
|
}
|
|
|
|
public PageOutput<SysMessageDTO> GetMessageList(Guid doctorId, int pageSize, int pageIndex)
|
|
{
|
|
Expression<Func<Message, bool>> sysMessageLambda = x => x.ToDoctorId == doctorId;
|
|
var count = _sysMessageRepository.GetCount(sysMessageLambda);
|
|
var result = _sysMessageRepository.Find(pageSize, pageIndex, false, "Id", sysMessageLambda).ToList();
|
|
|
|
return new PageOutput<SysMessageDTO>(pageIndex, pageSize, count, _mapper.Map<List<SysMessageDTO>>(result));
|
|
|
|
}
|
|
|
|
public int GetUnReadMessageCount(Guid doctorId)
|
|
{
|
|
return _sysMessageRepository.GetCount(m => m.ToDoctorId == doctorId && m.HasRead == false);
|
|
}
|
|
|
|
public IResponseOutput MarkedAsRead(Guid messageId)
|
|
{
|
|
var success = _sysMessageRepository.Update(m => m.Id == messageId, u => new Message()
|
|
{
|
|
HasRead = true
|
|
});
|
|
|
|
return ResponseOutput.Result(success);
|
|
}
|
|
}
|
|
} |