public ActionResult EmailDocument(int id) { Document document = db.Documents.Find(id); DocumentEmail documentEmail = new DocumentEmail() { Document = document, Email = new Email() }; return(View(documentEmail)); }
private SortedDictionary <string, string> getVariableDict( Employer employer, UserValues userValues, DocumentEmail documentEmail, IEnumerable <CustomVariable> customVariables, string jobName) { var dict = new SortedDictionary <string, string>(new VariableComparer()) { ["$chefFirma"] = employer.Company ?? "", ["$chefGeschlecht"] = employer.Gender ?? "", ["$chefTitel"] = employer.Degree ?? "", ["$chefVorname"] = employer.FirstName ?? "", ["$chefNachname"] = employer.LastName ?? "", ["$chefStrasse"] = employer.Street ?? "", ["$chefPostleitzahl"] = employer.Postcode ?? "", ["$chefStadt"] = employer.City ?? "", ["$chefEmail"] = employer.Email ?? "", ["$chefTelefonnummer"] = employer.Phone ?? "", ["$chefMobilnummer"] = employer.MobilePhone ?? "", ["$meinGeschlecht"] = userValues.Gender ?? "", ["$meinTitel"] = userValues.Degree ?? "", ["$meinVorname"] = userValues.FirstName ?? "", ["$meinNachname"] = userValues.LastName ?? "", ["$meineStrasse"] = userValues.Street ?? "", ["$meinePostleitzahl"] = userValues.Postcode ?? "", ["$meineStadt"] = userValues.City ?? "", ["$meineEmail"] = userValues.Email ?? "", ["$meineTelefonnummer"] = userValues.Phone ?? "", ["$meineMobilnummer"] = userValues.MobilePhone ?? "", ["$beruf"] = jobName ?? "", ["$emailBetreff"] = documentEmail.Subject ?? "", ["$emailText"] = documentEmail.Body ?? "", ["$emailAnhang"] = documentEmail.AttachmentName ?? "", ["$tagHeute"] = DateTime.Today.Day.ToString("00"), ["$monatHeute"] = DateTime.Today.Month.ToString("00"), ["$jahrHeute"] = DateTime.Today.Year.ToString("0000"), }; Variables.addVariablesToDict(customVariables.Select(x => x.Text), dict); return(dict); }
public ActionResult EmailDocument(int id, [Bind(Include = ("Document,Email"))] DocumentEmail documentEmail) { Document document = documentEmail.Document; Email emailEntered = documentEmail.Email; try { //Document document = db.Documents.Find(id); Email email = new Email { Subject = emailEntered.Subject, Message = emailEntered.Message, RecipientEmail = emailEntered.RecipientEmail }; email.SenderEmail = "*****@*****.**"; email.SenderPassword = MyKeys.EMAIL_PASSWORD; MailMessage mail = new MailMessage(); SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com"); mail.From = new MailAddress(email.SenderEmail); mail.To.Add(email.RecipientEmail); mail.Subject = email.Subject; mail.Body = email.Message + "\n\nClick this link to download the file!\n" + "http://localhost:54131/Publisher/Download/" + document.Id; SmtpServer.Port = 587; SmtpServer.Credentials = new System.Net.NetworkCredential(email.SenderEmail, email.SenderPassword); SmtpServer.EnableSsl = true; SmtpServer.Send(mail); ViewBag.Message = "The email has been sent successfully!"; return(View()); } catch { ViewBag.Message = "The email failed to send."; return(View()); } }
public object GetDbObject(string table, AppUser appUser, Document document, int index = -1) { switch (table) { case "UserValues": { var userValues = UserValues .Where(x => x.AppUser.Id == appUser.Id) .OrderByDescending(x => x.Id).FirstOrDefault(); if (userValues == null) { userValues = new UserValues { AppUser = appUser }; Add(userValues); SaveChanges(); } return(userValues); } case "DocumentEmail": { var documentEmail = DocumentEmail .Where(x => x.Document.Id == document.Id) .OrderByDescending(x => x.Id) .FirstOrDefault(); if (documentEmail == null) { documentEmail = new DocumentEmail { Document = document }; Add(documentEmail); SaveChanges(); } return(documentEmail); } case "Employer": { return(document.Employer); } case "CustomVariables": { if (index >= 1) { var customVariable = CustomVariables .Where(x => x.Document.Id == document.Id) .OrderBy(x => x.Id) .Skip((int)index - 1) .Take(1) .FirstOrDefault(); if (customVariable == null) { customVariable = new CustomVariable { Document = document }; Add(customVariable); SaveChanges(); } return(customVariable); } else { var customVariables = CustomVariables .Where(x => x.Document.Id == document.Id) .OrderBy(x => x.Id); return(customVariables); } } case "DocumentFiles": { if (index >= 1) { var documentFile = DocumentFiles .Where(x => x.Document.Id == document.Id) .OrderBy(x => x.Id) .Skip((int)index - 1) .Take(1) .FirstOrDefault(); if (documentFile == null) { documentFile = new DocumentFile { Document = document }; Add(documentFile); SaveChanges(); } return(documentFile); } else { return (DocumentFiles .Where(x => x.Document.Id == document.Id) .OrderBy(x => x.Id) .AsEnumerable <DocumentFile>()); } } case "Document": return(document); case "SentApplications": { var sentApplications = SentApplications .Where(x => x.Document.AppUser.Id == appUser.Id) .Include(x => x.Document) .Include(x => x.Document.Employer) .Include(x => x.UserValues) .OrderByDescending(x => x.SentDate) .AsEnumerable <SentApplication>(); return(sentApplications); } default: throw new Exception($"Table not found: {table}"); } }