Ejemplo n.º 1
0
        public void GetMailsTest()
        {
            var postMailModel = new PostMailModel()
            {
                To          = new string[] { this.userId.ToString() },
                CC          = Array.Empty <string>(),
                BCC         = Array.Empty <string>(),
                Subject     = "Test subject",
                Text        = "Test text",
                Attachments = Array.Empty <string>(),
            };

            this.mailService.SendMail(postMailModel, this.userId);
            var mail = this.dbContext.Mails
                       .Include(m => m.Recipients)
                       .First(
                m => m.Recipients.Any(r => r.RecipientId == this.userId) &&
                m.Subject == "Test subject" &&
                m.Text == "Test text");

            var mails = this.userService.GetMails(this.userId);

            Assert.True(mails.Any());
            int realCount = this.dbContext.Mails
                            .Include(m => m.Recipients)
                            .Where(m => m.Recipients.Any(r => r.RecipientId == this.userId))
                            .Count();

            Assert.True(mails.Count() == realCount);
        }
Ejemplo n.º 2
0
        public void SendMailTest()
        {
            var mails = this.dbContext.Mails
                        .Include(m => m.Recipients)
                        .Where(
                m => m.Recipients.Any(r => r.RecipientId == this.userId) &&
                m.Subject == "Test subject" &&
                m.Text == "Test text");

            this.dbContext.Mails.RemoveRange(mails);

            var postMailModel = new PostMailModel()
            {
                To          = new string[] { this.userId.ToString() },
                CC          = Array.Empty <string>(),
                BCC         = Array.Empty <string>(),
                Subject     = "Test subject",
                Text        = "Test text",
                Attachments = Array.Empty <string>(),
            };

            this.mailService.SendMail(postMailModel, this.userId);
            var mail = this.dbContext.Mails
                       .Include(m => m.Recipients)
                       .First(
                m => m.Recipients.Any(r => r.RecipientId == this.userId) &&
                m.Subject == "Test subject" &&
                m.Text == "Test text");

            Assert.NotNull(mail);
        }
Ejemplo n.º 3
0
        public void SendMail(PostMailModel mail, Guid ownerId)
        {
            Guid id = Guid.NewGuid();
            ICollection <MailTo> recipients = new HashSet <MailTo>();

            foreach (string item in mail.To)
            {
                recipients.Add(new MailTo()
                {
                    RecipientId = Guid.Parse(item),
                    MailId      = id,
                    CC          = null,
                    StatusRead  = false,
                });
            }

            foreach (string item in mail.CC)
            {
                recipients.Add(new MailTo()
                {
                    RecipientId = Guid.Parse(item),
                    MailId      = id,
                    CC          = true,
                    StatusRead  = false,
                });
            }

            foreach (string item in mail.BCC)
            {
                recipients.Add(new MailTo()
                {
                    RecipientId = Guid.Parse(item),
                    MailId      = id,
                    CC          = false,
                    StatusRead  = false,
                });
            }

            Mail mailEnt = new Mail()
            {
                Id         = id,
                SenderId   = ownerId,
                Subject    = mail.Subject,
                Text       = mail.Text,
                Recipients = recipients,
            };

            var attachmentsIds = mail.Attachments.Select(a => Guid.Parse(a));
            var attachments    = this.context.Attachments.Where(a => attachmentsIds.Contains(a.Id));

            foreach (var attachment in attachments)
            {
                mailEnt.Attachments.Add(attachment);
            }

            this.Create(mailEnt);
        }
Ejemplo n.º 4
0
        public IActionResult PostMail([FromBody] PostMailModel mail)
        {
            NotificationController notificationController = new NotificationController(new NotificationService());
            var userId = this.GetUserId();
            PostNotificationModel postNotificationModel = new PostNotificationModel
            {
                Content         = mail.Text,
                ContentType     = "string",
                RecipientsList  = mail.To,
                WithAttachments = mail.Attachments.Length > 0 ? true : false,
            };
            var result = notificationController.PostNotification(postNotificationModel);

            this._mailService.SendMail(mail, userId);
            return(this.NoContent());
        }