61 lines
2.2 KiB
C#
61 lines
2.2 KiB
C#
using AutoMapper;
|
|
using AutoMapper.QueryableExtensions;
|
|
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.Linq;
|
|
|
|
|
|
namespace IRaCIS.Application.Services
|
|
{
|
|
public class ResearchPublicationService : IResearchPublicationService
|
|
{
|
|
private readonly IResearchPublicationRepository _researchPublicationRepository;
|
|
private readonly IMapper _mapper;
|
|
|
|
public ResearchPublicationService(IResearchPublicationRepository scientificResearchRepository,IMapper mapper)
|
|
{
|
|
_researchPublicationRepository = scientificResearchRepository;
|
|
_mapper = mapper;
|
|
}
|
|
|
|
public ResearchPublicationDTO GetResearchPublication(Guid doctorId)
|
|
{
|
|
var doctorScientificResearchInfo = _researchPublicationRepository.Find(o => o.DoctorId == doctorId)
|
|
.ProjectTo<ResearchPublicationDTO>(_mapper.ConfigurationProvider).FirstOrDefault();
|
|
|
|
return doctorScientificResearchInfo;
|
|
}
|
|
|
|
public IResponseOutput AddOrUpdateResearchPublication(ResearchPublicationDTO param)
|
|
{
|
|
if (param.Id == Guid.Empty|| param.Id == null)
|
|
{
|
|
var doctorScientificResearchInfo =
|
|
_mapper.Map<ResearchPublication>(param);
|
|
_researchPublicationRepository.Add(doctorScientificResearchInfo);
|
|
var success = _researchPublicationRepository.SaveChanges();
|
|
|
|
return ResponseOutput.Result(success, doctorScientificResearchInfo.Id.ToString());
|
|
|
|
}
|
|
else
|
|
{
|
|
var success = _researchPublicationRepository.Update(o => o.Id == param.Id,
|
|
t => new ResearchPublication()
|
|
{
|
|
Publications = param.Publications,
|
|
AwardsHonors = param.AwardsHonors,
|
|
Research = param.Research,
|
|
Grants = param.Grants
|
|
});
|
|
|
|
return ResponseOutput.Result(success);
|
|
|
|
}
|
|
}
|
|
}
|
|
} |