/// <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-сообщение добавлено в очередь")); }
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)); }