Exemple #1
0
        /// <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);
        }
Exemple #2
0
        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());
            }
        }
Exemple #3
0
        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);
            }
        }
Exemple #5
0
        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());
        }
Exemple #6
0
        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);
        }
Exemple #7
0
        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);
        }
Exemple #8
0
        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);
            }
        }
Exemple #9
0
        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));
        }
Exemple #11
0
        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>");
            }
        }