update signutare
[CPE_learningsite] / CPE / CPE.Utilities / Email.cs
1 using System;
2 using System.Configuration;
3 using System.IO;
4 using System.Web;
5 using System.Web.Hosting;
6
7 namespace CPE.Utilities {
8     public static class Email {
9         public static string EmailBody {
10             get {
11                 string filePath = $"{ConfigurationManager.AppSettings["CertificateEmailBody"]}";
12                 return File.ReadAllText(filePath);
13             }
14         }
15
16         public static string WebcastEmailBody {
17             get {
18                 string filePath = $"{ConfigurationManager.AppSettings["WebcastCertificateEmailBody"]}";
19                 return File.ReadAllText(filePath);
20             }
21         }
22
23         public static string FailEmailBody {
24             get {
25                 string filePath = $"{ConfigurationManager.AppSettings["WebcastFailEmailBody"]}";
26                 return File.ReadAllText(filePath);
27             }
28         }
29
30         public static string RenderEmail(string contentUrl, DateTime? certificateDate, string ticket) {
31             if(!certificateDate.HasValue)
32                 return string.Empty;
33             var emailBody = EmailBody;
34             var certLink = ConfigurationManager.AppSettings["CertLink"];
35             var certURl = string.Format(certLink, contentUrl, certificateDate.Value.ToString("yyyyMMdd"), ticket);
36             return emailBody.Replace("certUrl", certURl);
37         }
38
39         public static string RenderWebcastEmail(string certURl) {
40             var emailBody = WebcastEmailBody;
41             return emailBody.Replace("certUrl", certURl);
42         }
43
44         public static string RenderCertLink(int meetingSco, DateTime purchaseDate, string ticket) {
45             var meetingUrl = meetingSco.ToString();
46             var certLink = ConfigurationManager.AppSettings["CertLink"];
47             var certURl = string.Format(certLink, meetingUrl, purchaseDate.ToString("yyyyMMdd"), ticket);
48             return certURl;
49         }
50
51         public static string RenderFailEmail() {
52             var emailBody = FailEmailBody;
53             return emailBody;
54         }
55
56         private static string MapServerPath(string path) {
57             string returnValue = null;
58             if(HttpContext.Current != null) {
59                 returnValue = HttpContext.Current.Server.MapPath(path);
60             } else {
61                 returnValue = HostingEnvironment.MapPath(path);
62             }
63             return returnValue;
64         }
65     }
66 }