コード例 #1
0
ファイル: RenderParameters.cs プロジェクト: crashr42/Health
 public static HtmlString NewParameterDraw(this HtmlHelper helper, Parameter parameter, string name_prefix)
 {
     if (Factory == null)
     {
         Factory = new RenderingFactory(parameter, name_prefix);
     }
     return Factory.GetAddParameterLayout(parameter);
 }
コード例 #2
0
ファイル: RenderParameters.cs プロジェクト: crashr42/Health
 public static HtmlString GetLayoutForParameterForPatient(this HtmlHelper helper, Parameter parameter, string name_prefix)
 {
     if (Factory == null)
     {
         Factory = new RenderingFactory(parameter, name_prefix);
     }
     return Factory.GetPatientParameterLayout();
 }
コード例 #3
0
ファイル: RenderingFactory.cs プロジェクト: crashr42/Health
        public HtmlString GetAddParameterLayout(Parameter parameter)
        {
            var type = parameter.GetType();
            var FieldInfos = type.GetProperties();

            var div_tag = new TagBuilder("div");
            div_tag.InnerHtml += "<h4>Заполните пожалуйста основные характеристики параметра</h4>";

            var textbox_render = new TextBoxRenderer();
            foreach (PropertyInfo field_info in FieldInfos)
            {
                var dict = new Dictionary<string, object>();
                dict["Name"] = field_info.Name;
                dict["Value"] = new object();

                if (field_info.Name != "MetaData" && field_info.Name != "Id")
                {
                    div_tag.InnerHtml += textbox_render.GetLayout(dict, name_prefix, field_info.Name);
                }
                else
                {
                    if (field_info.Name == "MetaData" && field_info.PropertyType == typeof(MetaData))
                    {
                        div_tag.InnerHtml += "<h4>Заполните пожалуйста мета-данные</h4>";

                        var metadata_type = typeof(MetaData);
                        var fieldInfos2 = metadata_type.GetProperties();
                        var checkbox_render = new CheckBoxRenderer();
                        foreach (PropertyInfo fieldinfo2 in fieldInfos2)
                        {
                            if (fieldinfo2.PropertyType == typeof(bool))
                            {
                                var dict2 = new Dictionary<string, object>();
                                dict2["Name"] = fieldinfo2.Name;
                                dict2["Value"] = new bool();

                                div_tag.InnerHtml += checkbox_render.GetLayout(dict2, name_prefix, fieldinfo2.Name);
                            }

                            if (fieldinfo2.PropertyType == typeof(object) || fieldinfo2.PropertyType == typeof(Nullable<int>))
                            {
                                var dict2 = new Dictionary<string, object>();
                                dict2["Name"] = fieldinfo2.Name;
                                dict2["Value"] = new object();

                                div_tag.InnerHtml += textbox_render.GetLayout(dict2, name_prefix, fieldinfo2.Name);
                            }
                        }
                    }
                }
            }
            return new HtmlString(div_tag.ToString(TagRenderMode.Normal));
        }
コード例 #4
0
ファイル: RenderingFactory.cs プロジェクト: crashr42/Health
 /// <summary>
 /// Инициализирует фабрику для отрисовки параметра.
 /// </summary>
 /// <param name="parameter">Отрисовываемый параметр</param>
 /// <param name="name_prefix">Префикс для генерации имен Html-объектов</param>
 public RenderingFactory(Parameter parameter, string name_prefix)
 {
     this.parameter = parameter;
     this.name_prefix = name_prefix;
 }