using MailKit.Net.Smtp; using MimeKit; using System; using System.Linq; using System.Linq.Dynamic.Core; using UnivateProperties_API.Context; using UnivateProperties_API.Model.Communication; namespace UnivateProperties_API.Repository.Communication { public interface IMailRepository { void ContactUs(MailModel mm); void EnquireNow(MailModel mm); } public class MailRepository : IMailRepository { private readonly DataContext _dbContext; public MailRepository(DataContext db) { _dbContext = db; } public MailRepository() { } MimeMessage messageObj = new MimeMessage(); MailboxAddress from; MailboxAddress to; BodyBuilder bodyBuilder = new BodyBuilder(); SmtpClient client = new SmtpClient(); public void ContactUs(MailModel mm) { string property = mm.Property; string phone = mm.Phone; string name = mm.Name; string email = mm.Email; string message = mm.Message; from = new MailboxAddress("Admin", mm.FromAddress); to = new MailboxAddress("User", mm.ToAddress); messageObj.From.Add(from); messageObj.To.Add(to); messageObj.Subject = "Uni-Vate - New Contact Request"; bodyBuilder.HtmlBody = "
" + "

Contact from: "+ name +"!

" + "

Email: "+ email +"

" + "

Phone: " + phone + "

" + "

Property: " + property + "

" + "
" + "

Message:

" + "

" + message + "

" + "
" + "
" + ""; messageObj.Body = bodyBuilder.ToMessageBody(); client.Connect("smtp.gmail.com", 465, true); client.Authenticate("jlouw365@gmail.com", "setskohatxpsceqo"); client.Send(messageObj); client.Disconnect(true); client.Dispose(); } public void EnquireNow(MailModel mm) { string phone = mm.Phone; string name = mm.Name; string email = mm.Email; string message = mm.Message; var props = _dbContext.Properties.ToList(); var prop = props.Where(x => x.Id == Convert.ToInt32(mm.Property)).FirstOrDefault(); from = new MailboxAddress("Admin", mm.FromAddress); to = new MailboxAddress("User", mm.ToAddress); messageObj.From.Add(from); messageObj.To.Add(to); messageObj.Subject = "Uni-Vate - Enquiry to view property"; bodyBuilder.HtmlBody = "
" + "

Contact from: " + name + "!

" + "

Email: " + email + "

" + "

Phone: " + phone + "

" + "
" + "

Property:

" + "

" + prop.Id + "

" + "

" + prop.PropertyName + "

" + "

" + prop.PropertyRef + "

" + "

" + prop.Price + "

" + "
" + "
" + ""; messageObj.Body = bodyBuilder.ToMessageBody(); client.Connect("smtp.gmail.com", 465, true); client.Authenticate("jlouw365@gmail.com", "setskohatxpsceqo"); client.Send(messageObj); client.Disconnect(true); client.Dispose(); } public void ForgotPassword(MailModel mm, string link) { string name = mm.Name; string email = mm.Email; from = new MailboxAddress("Admin", mm.FromAddress); to = new MailboxAddress("User", mm.ToAddress); messageObj.From.Add(from); messageObj.To.Add(to); messageObj.Subject = "Uni-Vate - Password Reset Request"; bodyBuilder.HtmlBody = "
" + "

Request to reset password

" + "

Dear " + name + " there has been a request to reset your password. If this is incorrect please send an email to info@univateproperties.co.za

" + "
" + "

"+ link + "

" + "
" + "
" + ""; messageObj.Body = bodyBuilder.ToMessageBody(); client.Connect("smtp.gmail.com", 465, true); client.Authenticate("jlouw365@gmail.com", "setskohatxpsceqo"); client.Send(messageObj); client.Disconnect(true); client.Dispose(); } } }