/// <summary> /// 设置模板类型 /// </summary> public void SetTemplateType() { this.TemplateType = TemplatePath.Contains("CodeFirst") ? TemplateType.CodeFirst : TemplatePath.Contains("DbFirst") ? TemplateType.DbFirst : TemplatePath.Contains("Global") ? TemplateType.Global : TemplateType.UnKnow; }
public override void OnExecute(ICommandContext context, CommandConfig config, CommandResult result) { var viewResult = result as MailResult; var viewModel = new RazorContentViewModel { Parameters = Parameters.CreateDictionary(context) }; try { if (string.IsNullOrEmpty(TemplatePath)) { throw LangTexts.Current.GetLangText("9013", "模板没有设置").CreateException(); } if (TemplatePath.Contains("{@")) { viewResult.Content = TemplatePath.ReplaceContextParameters(context, viewModel); } else { var template = ContentLib.Current.FolderRoot.GetFile(TemplatePath); if (template == null || (!(template is RazorTemplate))) { throw LangTexts.Current.GetFormatLangText("9011", "模板[{0}]加载失败", TemplatePath).CreateException(); } var razorTemplate = template as RazorTemplate; viewResult.Content = razorTemplate.Render(viewModel); } var title = Title.ReplaceContextParameters(context, viewModel); var sendTo = SendTo.ReplaceContextParameters(context, viewModel); var server = GetMailServer(); if (string.IsNullOrEmpty(sendTo)) { throw new Exception("邮件接收者不能为空"); } viewResult.Title = title; viewResult.SendTo = sendTo; viewResult.Encoding = Encoding; //在Action配置中增加可否为订阅事件的标识,如果有,则在该Action中增加一个MailAction,在该成功执行之后再执行 if (sendTo.IndexOf(',') > 0 && SendOneByOne) { foreach (var to in sendTo.Split(',')) { server.SendMail(title, viewResult.Content, to); } } else if (!string.IsNullOrEmpty(sendTo)) { server.SendMail(title, viewResult.Content, sendTo); } } catch { throw; } result.End(NextCommand); context.Execute(NextCommand); }