CostCalculationItem/IRaCIS.Core.Application/Common/MessageService.cs

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);
}
}
}