Exemplo n.º 1
0
        public static Message ToModel(this MessageAggregate message)
        {
            if (message == null)
            {
                throw new ArgumentNullException(nameof(message));
            }

            var files = message.MessageAttachments == null ? new List <MessageJoinedFile>() : message.MessageAttachments.Select(a => a.ToModel()).ToList();

            return(new Message
            {
                Id = message.Id,
                Content = message.Content,
                From = message.From,
                To = message.To,
                CreateDateTime = message.CreateDateTime,
                IsRead = message.IsRead,
                JoinedFiles = files,
                ParentId = message.ParentId,
                ProductId = message.ProductId,
                ClientServiceId = message.ClientServiceId,
                ServiceId = message.ServiceId,
                Subject = message.Subject
            });
        }
Exemplo n.º 2
0
        public async Task <bool> Add(MessageAggregate message)
        {
            if (message == null)
            {
                throw new ArgumentNullException(nameof(message));
            }

            using (var transaction = await _context.Database.BeginTransactionAsync().ConfigureAwait(false))
            {
                try
                {
                    var record = message.ToModel();
                    _context.Messages.Add(record);
                    await _context.SaveChangesAsync().ConfigureAwait(false);

                    transaction.Commit();
                    return(true);
                }
                catch
                {
                    transaction.Rollback();
                    return(false);
                }
            }
        }
Exemplo n.º 3
0
        public async Task Handle(SendMessageCommand message, IMessageHandlerContext context)
        {
            var messageAggregate = new MessageAggregate(context);

            messageAggregate.Create(message.Content, message.SenderSubject);
            await messageAggregate.Send();

            await _messageAggregateRepository.InsertMessage(messageAggregate);
        }
        public Task <bool> InsertMessage(MessageAggregate message)
        {
            if (message == null)
            {
                throw new ArgumentNullException(nameof(message));
            }

            return(InsertMessage(message.State));
        }
            public async Task <Result> Handle(Command command, CancellationToken cancellationToken)
            {
                var message = MessageAggregate.CreateMessage(command.UserId, command.Text);

                await _repository.Add(message);

                var result = new Result
                {
                    Id = message.Id
                };

                return(result);
            }
Exemplo n.º 6
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="request"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public async Task <HandleResultDto> Handle(AddMessageCommand request, CancellationToken cancellationToken)
        {
            var message = new MessageAggregate(request.UserName, request.ImgUrl, request.Message);

            await this._messageRepository.AddAsync(message, cancellationToken);

            await this._messageRepository.UnitOfWork.SaveEntitiesAsync(cancellationToken);

            return(new HandleResultDto
            {
                State = 1
            });
        }
Exemplo n.º 7
0
        public void Enrich(IHalResponseBuilder halResponseBuilder, MessageAggregate message)
        {
            if (halResponseBuilder == null)
            {
                throw new ArgumentNullException(nameof(halResponseBuilder));
            }

            if (message == null)
            {
                throw new ArgumentNullException(nameof(message));
            }

            halResponseBuilder.AddEmbedded(e => e.AddObject(_responseBuilder.GetMessage(message),
                                                            (l) =>
            {
                l.AddSelf(Constants.RouteNames.Messages + "/" + message.Id);
            }));
        }
        public async Task Handle(AddMessageCommand message)
        {
            if (message == null)
            {
                throw new ArgumentNullException(nameof(message));
            }

            var messageAggregate = new MessageAggregate
            {
                Id              = Guid.NewGuid().ToString(),
                Content         = message.Content,
                From            = message.From,
                To              = message.To,
                IsRead          = false,
                ProductId       = message.ProductId,
                ServiceId       = message.ServiceId,
                ParentId        = message.ParentId,
                Subject         = message.Subject,
                ClientServiceId = message.ClientServiceId,
                CreateDateTime  = DateTime.UtcNow
            };
            await _messageRepository.Add(messageAggregate);

            _eventPublisher.Publish(new MessageAddedEvent
            {
                Id              = messageAggregate.Id,
                Content         = messageAggregate.Content,
                From            = messageAggregate.From,
                To              = messageAggregate.To,
                IsRead          = messageAggregate.IsRead,
                ProductId       = messageAggregate.ProductId,
                ServiceId       = messageAggregate.ServiceId,
                ClientServiceId = messageAggregate.ClientServiceId,
                ParentId        = messageAggregate.ParentId,
                Subject         = messageAggregate.Subject,
                CreateDateTime  = messageAggregate.CreateDateTime,
                CommonId        = message.CommonId
            });
        }