コード例 #1
0
        public async Task <GetRentalMessageDto> CreateRentalMessageAsync(CreateRentalMessageDto item, CancellationToken ct = default)
        {
            var newItem = _mapper.Map <RentalMessage>(item);

            newItem.CreatedAt = DateTime.UtcNow;

            _unitOfWork.RentalMessageRepository.Create(newItem);

            await _unitOfWork.CommitAsync(ct);

            return(_mapper.Map <GetRentalMessageDto>(newItem));
        }
コード例 #2
0
        public async Task <ActionResult> CreateRentalMessageAsync([FromBody] CreateRentalMessageDto message)
        {
            BuildUserPrincipal();

            message.UserId = ApiUser.Id;

            var result = await _rentalMessageService.CreateRentalMessageAsync(message);

            _backgroundJobClient.Enqueue(() => _rentalMessageService.SendEmailAsync(message, CancellationToken.None));

            return(StatusCode((int)HttpStatusCode.Created, Json(JsonResultData.Success(result))));
        }
コード例 #3
0
        public async Task SendEmailAsync(CreateRentalMessageDto item, CancellationToken ct = default)
        {
            var rental = await _unitOfWork.RentalRepository.GetAsync(item.RentalId, ct);

            string sendTo = string.Empty;

            string sendFrom = string.Empty;

            if (item.UserId == rental.UserId)
            {
                sendTo   = rental.Robot.User.Email;
                sendFrom = rental.User.Email;
            }

            if (item.UserId == rental.Robot.UserId)
            {
                sendFrom = rental.Robot.User.Email;
                sendTo   = rental.User.Email;
            }

            string messageToSend = string.Format(
                _emailSenderConfiguration.NewMessageNotificationTemplate,
                sendFrom,
                $"{rental.Id} - {rental.Robot.Model.Company.Name} {rental.Robot.Model.Name}",
                rental.Id,
                item.Message);

            EmailMessage message = new EmailMessage
            {
                Message     = messageToSend,
                Subject     = _emailSenderConfiguration.NewMessageNotificationSubject,
                SendToEmail = sendTo
            };

            await _emailSendService.SendMessageAsync(message, ct);
        }