Example #1
0
        /// <summary>
        /// Отправить сообщение пользователю
        /// </summary>
        /// <param name="message"></param>
        /// <returns></returns>
        public async Task <BaseApiResponse> SendEmail(SendMailMessageToUser message)
        {
            var emailAndId = await Query <EccUser>().Select(x => new { x.Email, x.Id })
                             .FirstOrDefaultAsync(x => x.Id == message.UserId);

            if (emailAndId == null)
            {
                return(new BaseApiResponse(false, "Клиент не найден по указанному идентификатору"));
            }

            var toMes = ToMailMessage(message, emailAndId.Email);

            GetRepository <MailMessageInteraction>().CreateHandled(toMes.Item1);
            GetRepository <InteractionStatusLog>().CreateHandled(toMes.Item2);
            GetRepository <InteractionAttachment>().CreateHandled(toMes.Item3);

            return(await TrySaveChangesAndReturnResultAsync("Email-сообщение добавлено в очередь"));
        }
Example #2
0
        private (MailMessageInteraction, InteractionStatusLog, List <InteractionAttachment>) ToMailMessage(SendMailMessageToUser message, string email)
        {
            var id = Guid.NewGuid().ToString();

            return(new MailMessageInteraction
            {
                Id = id,
                TitleText = message.Subject,
                MessageText = AddReadingLink(message.Body, id),
                SendNow = true,
                UserId = message.UserId,
                Type = EccConsts.EmailType,
                ReceiverEmail = email
            },
                   new InteractionStatusLog
            {
                InteractionId = id,
                Status = InteractionStatus.Created,
                StartedOn = Application.DateTimeProvider.Now
            },
                   GetAttachments(id, message.AttachmentFileIds));
        }