Example #1
0
        public async Task ReturnCorrectEmailById_WhenPassedValueIsCorrect()
        {
            var testBody = "TestBody";
            var options  = TestUtils.GetOptions(nameof(ReturnCorrectEmailById_WhenPassedValueIsCorrect));
            var email    = new ClientEmail()
            {
                Body = testBody
            };

            var mockEmailFactory  = new Mock <IEmailFactory>().Object;
            var mockEmailStatus   = new Mock <IEmailStatusService>().Object;
            var mockEncryptHelper = new Mock <IEncryptingHelper>();

            using (var arrangeContext = new EmailManagerDbContext(options))
            {
                await arrangeContext.Emails.AddAsync(email);

                await arrangeContext.SaveChangesAsync();
            }

            using (var assertContext = new EmailManagerDbContext(options))
            {
                var sut = new EmailService(assertContext, mockEmailFactory, mockEncryptHelper.Object, mockEmailStatus);

                mockEncryptHelper.Setup(e => e.Encrypt("")).Returns("");
                mockEncryptHelper.Setup(e => e.Encrypt("")).Returns("");
                mockEncryptHelper.Setup(e => e.Decrypt("")).Returns("");
                mockEncryptHelper.Setup(e => e.Decrypt("")).Returns("");

                var result = await sut.GetEmailByIdAsync(email.Id);

                Assert.AreEqual(email.Id, result.Id);
            }
        }
        public async Task ReturnEmailsType_Successfully()
        {
            var testBody   = "TestBody";
            var options    = TestUtils.GetOptions(nameof(ReturnEmailsType_Successfully));
            var firstEmail = new ClientEmail()
            {
                Body = testBody
            };

            var mockEmailFactory  = new Mock <IEmailFactory>().Object;
            var mockEmailStatus   = new Mock <IEmailStatusService>().Object;
            var mockEncryptHelper = new Mock <EncryptingHelper>().Object;

            using (var arrangeContext = new EmailManagerDbContext(options))
            {
                await arrangeContext.Emails.AddAsync(firstEmail);

                await arrangeContext.SaveChangesAsync();
            }

            using (var assertContext = new EmailManagerDbContext(options))
            {
                var sut = new EmailService(assertContext, mockEmailFactory, mockEncryptHelper, mockEmailStatus);

                var result = await sut.GetAllEmailsAsync();

                Assert.IsInstanceOfType(result, typeof(ICollection <EmailDTO>));
            }
        }
        public async Task ReturnCorrectEmail_WhenExists()
        {
            var testId  = "TestId";
            var options = TestUtils.GetOptions(nameof(ReturnCorrectEmail_WhenExists));
            var email   = new ClientEmail()
            {
                OriginalMailId = testId
            };

            var mockEmailFactory  = new Mock <IEmailFactory>().Object;
            var mockEmailStatus   = new Mock <IEmailStatusService>().Object;
            var mockEncryptHelper = new Mock <EncryptingHelper>().Object;

            using (var arrangeContext = new EmailManagerDbContext(options))
            {
                await arrangeContext.Emails.AddAsync(email);

                await arrangeContext.SaveChangesAsync();
            }

            using (var assertContext = new EmailManagerDbContext(options))
            {
                var sut = new EmailService(assertContext, mockEmailFactory, mockEncryptHelper, mockEmailStatus);

                var result = await sut.CheckIfEmailExists(testId);

                Assert.AreEqual(true, result);
            }
        }
Example #4
0
        // -----------------------------------------------------
        //    List clients
        // -----------------------------------------------------
        public static List <ClientEmail> List(string groupType)
        {
            var clientEmailList = new List <ClientEmail>();

            if (string.IsNullOrEmpty(groupType))
            {
                return(new List <ClientEmail>());
            }

            using (var connection = new MySqlConnection(ConnString.ConnectionString))
            {
                var commandString = string.Format(
                    " SELECT " +
                    "  UID " +
                    ", FirstName " +
                    ", LastName " +
                    ", EmailAddress " +
                    ", Type " +
                    "   FROM ClientEmail " +
                    "   WHERE (EmailSent is null or EmailSent = '') and Type = @groupType" +
                    "  ORDER BY UID ASC "
                    );

                using (var command = new MySqlCommand(
                           commandString, connection))
                {
                    command.Parameters.Add("@groupType", MySqlDbType.VarChar).Value = groupType;

                    connection.Open();

                    try
                    {
                        using (MySqlDataReader reader = command.ExecuteReader())
                        {
                            while (reader.Read())
                            {
                                var clientEmail = new ClientEmail();

                                clientEmail.UID          = Convert.ToInt32(reader["UID"]);
                                clientEmail.FirstName    = reader["FirstName"].ToString();
                                clientEmail.LastName     = reader["LastName"].ToString();
                                clientEmail.EmailAddress = reader["EmailAddress"].ToString();
                                clientEmail.Type         = reader["Type"].ToString();

                                clientEmailList.Add(clientEmail);
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        string error = ex.ToString();
                        LogFile.WriteToTodaysLogFile(ex.ToString(), "", "", "ClientEmail.cs");
                    }
                }
            }

            return(clientEmailList);
        }
Example #5
0
        /// <summary>
        /// Add a new email for the client
        /// </summary>
        /// <param name="email">Email client</param>
        /// <param name="clientId">Client Id</param>
        public void AddEmail(string email, string clientId)
        {
            if (!string.IsNullOrWhiteSpace(email) && AtlasDataContext.ClientEmails.Where(x => x.ClientId == clientId && x.Email == email.Trim()).Count() == 0)
            {
                var clientEmail = new ClientEmail
                {
                    Email    = email.Trim(),
                    ClientId = clientId
                };

                AtlasDataContext.ClientEmails.Add(clientEmail);
                AtlasDataContext.SaveChanges();
            }
        }
        public ClientEmail CreateEmail(string originalMailId, string senderName, string senderEmail, DateTime dateReceived, string subject, string body)
        {
            var newEmail = new ClientEmail
            {
                OriginalMailId = originalMailId,
                SenderName     = senderName,
                SenderEmail    = senderEmail,
                DateReceived   = dateReceived,
                Subject        = subject,
                Body           = body,
                StatusEmailId  = "a0e53404-d40e-4a1e-8fe5-9a5fc0139ed9"
            };

            return(newEmail);
        }
        public async Task ReturnCollectionOfEmail()
        {
            var testBody   = "TestBody";
            var options    = TestUtils.GetOptions(nameof(ReturnCollectionOfEmail));
            var firstEmail = new ClientEmail()
            {
                Body = testBody
            };
            var secondEmail = new ClientEmail()
            {
                Body = "SecondBodyName"
            };
            var thirdEmail = new ClientEmail()
            {
                Body = "ThirdBodyName"
            };

            var mockEmailFactory  = new Mock <IEmailFactory>().Object;
            var mockEmailStatus   = new Mock <IEmailStatusService>().Object;
            var mockEncryptHelper = new Mock <EncryptingHelper>().Object;


            using (var arrangeContext = new EmailManagerDbContext(options))
            {
                await arrangeContext.Emails.AddAsync(firstEmail);

                await arrangeContext.Emails.AddAsync(secondEmail);

                await arrangeContext.Emails.AddAsync(thirdEmail);

                await arrangeContext.SaveChangesAsync();
            }

            using (var assertContext = new EmailManagerDbContext(options))
            {
                var sut = new EmailService(assertContext, mockEmailFactory, mockEncryptHelper, mockEmailStatus);

                var result = await sut.GetAllEmailsAsync();

                Assert.AreEqual(3, result.Count);
            }
        }
Example #8
0
        public static EmailDTO ToDTO(this ClientEmail entity)
        {
            if (entity is null)
            {
                return(null);
            }

            var email = new EmailDTO
            {
                Id                = entity.Id,
                OriginalMailId    = entity.OriginalMailId,
                Subject           = entity.Subject,
                Sender            = entity.SenderEmail,
                DateReceived      = entity.DateReceived,
                Body              = entity.Body,
                EmailStatusId     = entity.StatusEmailId,
                EmailStatusName   = entity.Status?.StatusType,
                ModifiedOnDate    = entity.ModifiedOnDate,
                ModifiedByUserId  = entity.ModifiedByUserId,
                ApplicationStatus = entity.LoanApplication?.ApplicationStatus.ToString()
            };

            return(email);
        }
Example #9
0
        // -----------------------------------------------------
        //    List clients
        // -----------------------------------------------------
        public static List <ClientEmail> ListCertificates(string groupType)
        {
            var clientEmailList = new List <ClientEmail>();

            string certType = "Cert";

            using (var connection = new MySqlConnection(ConnString.ConnectionString))
            {
                var commandString = string.Format(
                    " SELECT " +
                    "  UID " +
                    ", FirstName " +
                    ", LastName " +
                    ", EmailAddress " +
                    ", Type " +
                    ", Document" +
                    ", CertificateType " +
                    "   FROM ClientEmail, temp_emailattach" +
                    "   WHERE  " +
                    "   FKEmailClientID = SecID and " +
                    "   Type = @groupType and CertificateType = @certType " +
                    "  ORDER BY UID ASC "
                    );

                using (var command = new MySqlCommand(
                           commandString, connection))
                {
                    command.Parameters.Add("@groupType", MySqlDbType.VarChar).Value = groupType;
                    command.Parameters.Add("@certType", MySqlDbType.VarChar).Value  = certType;

                    connection.Open();

                    try
                    {
                        using (MySqlDataReader reader = command.ExecuteReader())
                        {
                            while (reader.Read())
                            {
                                var clientEmail = new ClientEmail();

                                clientEmail.UID             = Convert.ToInt32(reader["UID"]);
                                clientEmail.FirstName       = reader["FirstName"].ToString();
                                clientEmail.LastName        = reader["LastName"].ToString();
                                clientEmail.EmailAddress    = reader["EmailAddress"].ToString();
                                clientEmail.Type            = reader["Type"].ToString();
                                clientEmail.Attachment      = reader["Document"].ToString();
                                clientEmail.CertificateType = reader["CertificateType"].ToString();

                                clientEmailList.Add(clientEmail);
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        string error = ex.ToString();
                        LogFile.WriteToTodaysLogFile(ex.ToString(), "", "", "ClientEmail.cs");
                    }
                }
            }

            return(clientEmailList);
        }