public ActionResult Marking(Guid id) { var userService = new UserInfoService(); var user = GetCurrentUser(); var thesis = Db.Theses.SingleOrDefault(x => x.Id == id); // Mail mit Notenbeleg zum Ausdrucken an sich selbst senden var tm = new ThesisStateModel() { Thesis = thesis, Student = thesis.Student, User = userService.GetUser(thesis.Student.UserId), Mark = "" }; // hier zunächst mit Postal - weil es so geht var stream = new MemoryStream(); var email = new ThesisEmail("ThesisMarked"); email.To = user.Email; email.From = MailController.InitSystemFrom(); email.Subject = "Notenmeldung Abschlussarbeit"; email.Thesis = tm; email.Receiver = user; var html = this.RenderViewToString("_ThesisPrintOut", email); PdfDocument pdf = PdfGenerator.GeneratePdf(html, PageSize.A4); //pdf.Save("document.pdf"); pdf.Save(stream, false); // Stream zurücksetzen stream.Position = 0; email.Attach(new Attachment(stream, "Notenmeldung.pdf", System.Net.Mime.MediaTypeNames.Application.Pdf)); email.Send(); return(RedirectToAction("Details", new { id = thesis.Id })); }
/// <summary> /// /// </summary> /// <param name="id"></param> /// <returns></returns> public ActionResult CustomOccurrenceMail(Guid id) { var db = new TimeTableDbContext(); var occ = db.Occurrences.SingleOrDefault(c => c.Id == id); var model = new OccurrenceMailingModel(); if (occ != null) { var summary = new ActivityService().GetSummary(id); var subscribers = summary.Subscriptions; model.OccurrenceId = occ.Id; model.Name = summary.Name; model.Subject = $"[{summary.Name}]"; model.ReceiverCount = subscribers.Count; } ViewBag.UserRight = GetUserRight(); ViewBag.SystemMail = MailController.InitSystemFrom(); return(View(model)); }