diff options
| author | Danail Dimitrov <danaildimitrov321@gmail.com> | 2021-02-19 23:05:24 +0200 |
|---|---|---|
| committer | Danail Dimitrov <danaildimitrov321@gmail.com> | 2021-02-19 23:05:24 +0200 |
| commit | d6d70dc432cf2b6523ce9f06575e178cbd208414 (patch) | |
| tree | 23bf9315473067167f67aa8afd9e32299d1f037e /src/Services/DevHive.Services | |
| parent | ce6471578364310de31ed02e21ba5d7ae6529234 (diff) | |
| download | DevHive-chat_system.tar DevHive-chat_system.tar.gz DevHive-chat_system.zip | |
Adding Message layerchat_system
Diffstat (limited to 'src/Services/DevHive.Services')
| -rw-r--r-- | src/Services/DevHive.Services/Services/CommentService.cs | 1 | ||||
| -rw-r--r-- | src/Services/DevHive.Services/Services/MessageService.cs | 40 |
2 files changed, 36 insertions, 5 deletions
diff --git a/src/Services/DevHive.Services/Services/CommentService.cs b/src/Services/DevHive.Services/Services/CommentService.cs index b48bac8..d4b6846 100644 --- a/src/Services/DevHive.Services/Services/CommentService.cs +++ b/src/Services/DevHive.Services/Services/CommentService.cs @@ -40,6 +40,7 @@ namespace DevHive.Services.Services comment.Post = await this._postRepository.GetByIdAsync(createCommentServiceModel.PostId); bool success = await this._commentRepository.AddAsync(comment); + if (success) { Comment newComment = await this._commentRepository diff --git a/src/Services/DevHive.Services/Services/MessageService.cs b/src/Services/DevHive.Services/Services/MessageService.cs index 3e07fab..8b03d08 100644 --- a/src/Services/DevHive.Services/Services/MessageService.cs +++ b/src/Services/DevHive.Services/Services/MessageService.cs @@ -4,6 +4,7 @@ using System.IdentityModel.Tokens.Jwt; using System.Linq; using System.Security.Claims; using System.Threading.Tasks; +using AutoMapper; using DevHive.Data.Models; using DevHive.Data.Repositories; using DevHive.Services.Interfaces; @@ -15,21 +16,50 @@ namespace DevHive.Services.Services { private readonly MessageRepository _messageRepository; private readonly UserRepository _userRepository; + private readonly ChatRepository _chatRepository; + private readonly IMapper _messageMapper; - public MessageService(MessageRepository messageRepository, UserRepository userRepository) + public MessageService(MessageRepository messageRepository, UserRepository userRepository, ChatRepository chatRepository, IMapper messageMapper) { this._messageRepository = messageRepository; this._userRepository = userRepository; + this._chatRepository = chatRepository; + this._messageMapper = messageMapper; } - public Task<Guid> CreateMessage(CreateMessageServiceModel createMessageServiceModel) + public async Task<Guid> CreateMessage(CreateMessageServiceModel createMessageServiceModel) { - throw new NotImplementedException(); + //if you think of any validations add them here + + Message message = this._messageMapper.Map<Message>(createMessageServiceModel); + + message.TimeCreated = DateTime.Now; + message.Chat = await this._chatRepository.GetByIdAsync(createMessageServiceModel.ChatId); + message.Creator = await this._userRepository.GetByIdAsync(createMessageServiceModel.CreatorId); + + bool result = await this._messageRepository.AddAsync(message); + + if (result) + { + Message newMessage = await this._messageRepository.GetMessageByCreatorAndTimeCreatedAsync(createMessageServiceModel.CreatorId, message.TimeCreated); + + return newMessage.Id; + } + + return Guid.Empty; } - public Task<ReadMessageServiceModel> GetMessageById(Guid id) + public async Task<ReadMessageServiceModel> GetMessageById(Guid id) { - throw new NotImplementedException(); + Message message = await this._messageRepository.GetByIdAsync(id) ?? + throw new ArgumentException("The message does not exist"); + + User user = await this._userRepository.GetByIdAsync(message.Creator.Id) ?? + throw new ArgumentException("The user does not exist"); + + ReadMessageServiceModel readMessageServiceModel = this._messageMapper.Map<ReadMessageServiceModel>(message); + + return readMessageServiceModel; } #region Validations |
