Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
using AutoMapper;
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tsi1.BusinessLayer.Dtos;
using Tsi1.BusinessLayer.Helpers;
using Tsi1.BusinessLayer.Interfaces;
using Tsi1.DataLayer;
using Tsi1.DataLayer.Entities;
namespace Tsi1.BusinessLayer.Services
{
public class PostMessageService : IPostMessageService
{
private readonly Tsi1Context _context;
private readonly IMapper _mapper;
public PostMessageService(Tsi1Context context, IMapper mapper)
{
_context = context;
_mapper = mapper;
}
public async Task<ServiceResult<PostMessage>> Create(PostMessageCreateDto newPostMessage)
{
var result = new ServiceResult<PostMessage>();
var postMessage = _mapper.Map<PostMessage>(newPostMessage);
postMessage.Date = DateTime.Now;
_context.PostMessages.Add(postMessage);
await _context.SaveChangesAsync();
result.Data = postMessage;
return result;
}
public async Task<ServiceResult<PostMessage>> Delete(int postMessageId)
{
var result = new ServiceResult<PostMessage>();
var postMessage = await _context.PostMessages
.FirstOrDefaultAsync(x => x.Id == postMessageId);
if (postMessage == null)
{
result.HasError = true;
result.Message = string.Format(ErrorMessages.PostMessageDoesNotExist, postMessageId);
return result;
}
_context.PostMessages.Remove(postMessage);
await _context.SaveChangesAsync();
return result;
}
public async Task<ServiceResult<List<PostMessagePreviewDto>>> GetPostMessages(int postId)
{
var result = new ServiceResult<List<PostMessagePreviewDto>>();
var postMessages = await _context.PostMessages
.Where(x => x.PostId == postId)
.ToListAsync();
var postMessageDtos = _mapper.Map<List<PostMessagePreviewDto>>(postMessages);
result.Data = postMessageDtos;
return result;
}
}
}