/// <summary> /// 根据模板Id 和 doc 获得标题和内容 /// </summary> public static bool ResolverTemplate(string channel, string templateId, Dictionary <string, object> param, out string title, out string content, out string category) { title = content = category = string.Empty; DictSchema schema = (from q in DictSchema.CreateContext(true) where q.Type == "msg" && q.Name == "template" && q.Title == templateId select q).FirstOrDefault(); if (schema == null) { LogManager.GetLogger <NoticeFactory>().ErrorFormat("指定的模板:{0} 不存在。", templateId); return(false); } category = schema.Category; ITemplateEngine te = ServiceLocator.Instance.Resolve <ITemplateEngine>(); using (StringWriter sw = new StringWriter()) { string template = schema[channel + "_title"]; if (string.IsNullOrEmpty(template)) { template = schema["default_title"]; } if (string.IsNullOrWhiteSpace(template)) { title = string.Empty; } else { te.Process(param, string.Empty, sw, template); title = sw.GetStringBuilder().ToString(); } } using (StringWriter sw = new StringWriter()) { string template = schema[channel + "_content"]; if (string.IsNullOrEmpty(template)) { template = schema["default_content"]; } if (string.IsNullOrWhiteSpace(template)) { content = string.Empty; } else { te.Process(param, string.Empty, sw, template); content = sw.GetStringBuilder().ToString(); } } return(true); }
public static string Render(RenderFunc func) { string content = string.Empty; using (MemoryStream ms = new MemoryStream()) { using (HtmlTextWriter htmlWriter = new HtmlTextWriter(new StreamWriter(ms))) { func(htmlWriter); htmlWriter.Flush(); } using (StreamReader rdr = new StreamReader(ms)) { rdr.BaseStream.Position = 0; content = rdr.ReadToEnd(); } } ITemplateEngine te = ServiceLocator.Instance.Resolve <ITemplateEngine>(); using (StringWriter sw = new StringWriter()) { te.Process(JContext.Current.ViewData, string.Empty, sw, content); return(sw.GetStringBuilder().ToString()); } }
protected void RenderFromTemplate(String templateName, IEngineContext engineContext, IController controller, IControllerContext controllerContext) { var writer = new StringWriter(); IDictionary context = new Hashtable { { "flash", engineContext.Flash } }; foreach (DictionaryEntry entry in controllerContext.Helpers) { context[entry.Key] = entry.Value; } foreach (DictionaryEntry entry in controllerContext.PropertyBag) { context.Add(entry.Key, entry.Value); } #if USE_LOCAL_TEMPLATES templateEngine.Process(context, templateName, writer); #else templateEngine.Process(context, "Castle.MonoRail.ActiveRecordSupport/Scaffold/Templates/" + templateName, writer); #endif if (useDefaultLayout) { var layoutwriter = new StringWriter(); context.Add("childContent", writer.GetStringBuilder().ToString()); #if USE_LOCAL_TEMPLATES templateEngine.Process(context, "layout.vm", layoutwriter); #else templateEngine.Process(context, "Castle.MonoRail.ActiveRecordSupport/Scaffold/Templates/layout.vm", layoutwriter); #endif writer = layoutwriter; controllerContext.SelectedViewName = null; engineContext.Response.Write(writer.GetStringBuilder().ToString()); } else { engineContext.Services.ViewEngineManager.RenderStaticWithinLayout(writer.GetStringBuilder().ToString(), engineContext, controller, controllerContext); } }
public void Dispatch(String from, String[] targets, String messageTypeName) { String message = _templateEngine.Process(messageTypeName); foreach (String target in targets) { _sender.Send(from, target, message); } }
protected void RenderFromTemplate(String templateName, Controller controller) { StringWriter writer = new StringWriter(); IDictionary context = new Hashtable(); foreach (DictionaryEntry entry in controller.PropertyBag) { context.Add(entry.Key, entry.Value); } #if DEBUG templateEngine.Process(context, templateName, writer); #else templateEngine.Process(context, "Castle.MonoRail.ActiveRecordScaffold/Templates/" + templateName, writer); #endif controller.DirectRender(writer.GetStringBuilder().ToString()); }
public void Dispose() { if (!this.isexport) { return; } jc.RenderContent = false; StringBuilder sb = new StringBuilder(); sb.Append("<html xmlns:x=\"urn:schemas-microsoft-com:office:excel\">"); sb.Append("<head>"); sb.Append("<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\">"); sb.Append("<meta name=ProgId content=Excel.Sheet>"); sb.Append("<!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>" + this.filename + "</x:Name><x:WorksheetOptions><x:Print><x:ValidPrinterInfo /></x:Print></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]-->"); sb.Append("</head>"); sb.Append("<body>"); if (string.IsNullOrEmpty(SkinNamePostFix)) { try { ITemplateEngine te = ServiceLocator.Instance.Resolve <ITemplateEngine>(); using (StringWriter sw = new StringWriter()) { te.Process(JContext.Current.ViewData, string.Empty, sw, "$!contentModel.renderTable()"); sb.Append(sw.GetStringBuilder().ToString()); } } catch (Exception ex) { LogManager.GetLogger <ExportHelper>().Error(ex.Message); } } else { sb.Append(new TemplatedControl(jc.Navigation.Action + SkinNamePostFix).Execute()); } sb.Append("</body></html>"); new FileContentResult(Encoding.UTF8.GetBytes(sb.ToString()), "application/vnd.ms-excel") { FileDownloadName = filename }.ExecuteResult(jc); }
protected virtual string ComposeBody(Message msg, IDictionary context, bool degrade) { string body; using (var sw = new StringWriter()) { templateEngine.Process(context, Template, sw); body = sw.ToString(); } if (degrade) { body = DegradeToHtml4(body); } return(body); }
public static string templatestring(Dictionary <string, object> datas, string template) { try { ITemplateEngine te = ServiceLocator.Instance.Resolve <ITemplateEngine>(); using (StringWriter sw = new StringWriter()) { te.Process(datas, string.Empty, sw, template); return(sw.GetStringBuilder().ToString()); } } catch (Exception ex) { LogManager.GetLogger <StringUtil>().Error(ex.Message); return(string.Empty); } }
public override string this[string key] { get { string v = base[key]; if (!string.IsNullOrEmpty(v) && v.Contains("$!")) { ITemplateEngine te = ServiceLocator.Instance.Resolve <ITemplateEngine>(); using (StringWriter sw = new StringWriter()) { te.Process(JContext.Current.ViewData, "", sw, v); v = sw.GetStringBuilder().ToString(); } } return(v); } set { base[key] = value; } }
public override async Task <UsuarioDto> Create(CrearUsuarioDto input) { //1. Crear Usuario Logger.DebugFormat("1. Set Values "); var user = input.MapTo <Usuario>(); //var user = ObjectMapper.Map<Usuario>(input); user.Estado = EstadoUsuario.Activo; var passwordRandom = GeneratePassword(); //Hash user.Password = new PasswordHasher().HashPassword(passwordRandom); //Para obligar a cambiar el password. user.SetNewPasswordResetCode(); //Roles user.Roles = new Collection <Rol>(); foreach (var nombreRol in input.Roles) { var role = await RoleManager.GetRoleByNameAsync(nombreRol); user.Roles.Add(role); } //Modulos user.Modulos = new Collection <Modulo>(); foreach (var nombre in input.Modulos) { var module = await ModuleManager.GetModuleByIdAsync(nombre); user.Modulos.Add(module); } Logger.DebugFormat("2. Create User"); CheckErrors(await UserManager.CreateAsync(user)); //2. Enviar Correo try { var modelBodyEmail = new NotificacionUsuarioCreado(); modelBodyEmail.PasswordRestCode = user.PasswordResetCode; modelBodyEmail.Nombres = user.NombresCompletos; modelBodyEmail.Usuario = user.Cuenta; modelBodyEmail.Password = passwordRandom; var sistemaURL = ParametroService.GetValor <string>(CodigosParametros.PARAMETRO_SISTEMA_URL); modelBodyEmail.Enlace = string.Format("{0}/{1}", sistemaURL, "Acceso/Ingreso"); Logger.DebugFormat("3. Process Template"); var body = await TemplateEngine.Process(Constantes.TEMPLATE_SEGURIDAD_ENVIO_CORREO_CREACION_USUARIO, modelBodyEmail); var msg = new IdentityMessage(); msg.Destination = user.Correo; msg.Subject = "Creación de Usuario"; msg.Body = body; Logger.DebugFormat("4. Send Email"); await EmailService.SendAsync(msg); } catch (Exception ex) { var result = ManejadorExcepciones.HandleException(ex); } Logger.DebugFormat("5. Return User"); return(MapToEntityDto(user)); }
private void DrawLinks(HtmlTextWriter writer) { if (Template != null) { ArrayList datasource = GetDataSource(); if (datasource == null || datasource.Count == 0) { return; } Control ctrl = new Control() { }; Template.InstantiateIn(ctrl); string content = string.Empty; using (MemoryStream ms = new MemoryStream()) { using (HtmlTextWriter htmlWriter = new HtmlTextWriter(new StreamWriter(ms))) { ctrl.RenderControl(htmlWriter); htmlWriter.Flush(); } using (StreamReader rdr = new StreamReader(ms, Encoding.UTF8)) { rdr.BaseStream.Position = 0; content = rdr.ReadToEnd(); } } try { ITemplateEngine te = ServiceLocator.Instance.Resolve <ITemplateEngine>(); using (StringWriter sw = new StringWriter()) { Dictionary <string, object> di = new Dictionary <string, object>(JContext.Current.ViewData); di["pagings"] = datasource; te.Process(di, string.Empty, sw, content); writer.Write(sw.GetStringBuilder().ToString()); } } catch (Exception ex) { LogManager.GetLogger <Paging>().Error(ex.Message); ExceptionUtil.WriteException(ex); } } else { StringBuilder txt = new StringBuilder(); int[] interval = getInterval(QueryCondition, NumDisplay); var np = get_numPages(QueryCondition); if (np < 2) { return; } if (StringUtil.HasText(PrevText) && (QueryCondition.PageIndex > 0 || AlwaysShowPrev)) { txt.Append(appendItem(QueryCondition.PageIndex - 1, np, new string[] { PrevText, "prev" })); } if (interval[0] > 0 && NumEdge > 0) { var end = Math.Min(NumEdge, interval[0]); for (int i = 0; i < end; i++) { txt.Append(appendItem(i, np, null)); } if (NumEdge < interval[0]) { txt.Append("<span>...</span>"); } } for (int i = interval[0]; i < interval[1]; i++) { txt.Append(appendItem(i, np, null)); } if (interval[1] < np && NumEdge > 0) { if (np - NumEdge > interval[1]) { txt.Append("<span>...</span>"); } var begin = Math.Max(np - NumEdge, interval[1]); for (int i = begin; i < np; i++) { txt.Append(appendItem(i, np, null)); } } if (StringUtil.HasText(NextText) && (QueryCondition.PageIndex < np - 1 || AlwaysShowNext)) { txt.Append(appendItem(QueryCondition.PageIndex + 1, np, new string[] { NextText, "next" })); } writer.Write("<div class='pagination'>"); writer.Write(txt.ToString()); writer.Write("</div>"); } }