public static EmailMessage RunTemplate(this MemoryCache cache, string name, string to, object model, string language = null) { var key = "RunTemplate_" + name; cache.GetOrCreate(key, () => { var context = new MailerContext(); Template template = null; if (language != null) { template = context.Templates[name + "." + language, string.Empty]; } if (template == null) { template = context.Templates[name, string.Empty]; } Engine.Razor.AddTemplate(template.body, name); Engine.Razor.AddTemplate(template.subject, name + "|subject"); return(string.Empty); }); var body = Engine.Razor.RunCompile(name, model: model); var subject = Engine.Razor.RunCompile(name + "|subject", model: model); return(new EmailMessage { PartitionKey = TimeId.NewSortableId(), RowKey = string.Empty, Subject = subject, Body = body, To = to }); }
public void TestNewSortableId() { var a = TimeId.NewSortableId(); var b = TimeId.NewSortableId(); Assert.AreNotEqual(a, b); }
public void TestSortableId() { var date1 = new DateTime(2000, 1, 1, 0, 0, 0); var date2 = date1.AddSeconds(1); var a = TimeId.NewSortableId(date1); var b = TimeId.NewSortableId(date2); Assert.IsTrue(a.CompareTo(b) > 0); Assert.AreEqual(date2, TimeId.ToDateTime(b)); var c = TimeId.NewSortableId(date1, true); var d = TimeId.NewSortableId(date2, true); Assert.IsTrue(c.CompareTo(d) < 0); }
LogItem CreateLogItem(string key, LogEventInfo logEventInfo) { var logItem = new LogItem { PartitionKey = key, RowKey = TimeId.NewSortableId(logEventInfo.TimeStamp, this.SortAscending), LogDateTime = logEventInfo.TimeStamp, }; foreach (var property in _properties) { logItem[property.Name] = property.Value.Render(logEventInfo); } return(logItem); }
static void postJob(SchedulerContext context, JobItem jobItem, int statusCode, string result, int runTime) { var jobLog = new JobLog { PartitionKey = TimeId.NewSortableId(), RowKey = string.Empty, JobGroup = jobItem.PartitionKey, JobName = jobItem.RowKey, StatusCode = statusCode, Result = result, RunTime = runTime, }; context.JobLogs.Insert(jobLog, true); jobItem.LastRun = DateTime.UtcNow; jobItem.LastRunResult = jobLog.Result; jobItem.LastRunStatusCode = jobLog.StatusCode; if (jobLog.StatusCode >= 200 && jobLog.StatusCode < 400) { jobItem.LastSuccessRun = jobItem.LastRun; } context.JobItems.Replace(jobItem); }