コード例 #1
0
 public void CanWriteExplicitProperty()
 {
     Model.Property("FirstName", () => Customer.FirstName, value => Customer.FirstName = value);
     Model.WriteProperty("FirstName", "Jack");
     Assert.AreEqual("Jack", Model.ReadProperty <string>("FirstName"));
     Assert.AreEqual("Jack", Customer.FirstName);
 }
コード例 #2
0
 public void CanForceReadOnlyProperties()
 {
     Model.Property(() => Customer.FirstName);
     Model.Property(() => Customer.LastName).ReadOnly();
     Assert.IsFalse(Model.GetPropertyDescriptor("FirstName").IsReadOnly);
     Assert.IsTrue(Model.GetPropertyDescriptor("LastName").IsReadOnly);
 }
コード例 #3
0
 public void CanRenameProperties()
 {
     Model.Property(() => Customer.FirstName).Named("GivenName");
     Assert.IsNotNull(Model.GetPropertyDescriptor("GivenName"));
 }
コード例 #4
0
 public void CanPrefixProperty()
 {
     Model.Property("FirstName", () => Customer.FirstName).WithPrefix("Customer");
     Assert.AreEqual("Paul", Model.ReadProperty <string>("CustomerFirstName"));
 }
コード例 #5
0
ファイル: Gird.cs プロジェクト: AimilaGaven/Magic
        private string FormatFromModel(string tempString, Model.Model model)
        {
            var propertys = model.GetType().GetProperties();
            Regex r = new Regex("{[A-Z|a-z|0-9]*}");
            return r.Replace(tempString, (m) =>
            {
                var value =model.Property(m.Value.Trim('{','}'));
                if (value == null) return "";
                return value.ToString();

            });
        }
コード例 #6
0
ファイル: Gird.cs プロジェクト: AimilaGaven/Magic
        public void ReaderRow(HtmlTextWriter writer, Model.Model model)
        {
            var propertys = Source.ModelType.GetProperties();

            if (ShowCheckBox)
            {
                writer.RenderBeginTag(HtmlTextWriterTag.Td);
                writer.AddAttribute(HtmlTextWriterAttribute.Type, "checkbox");
                writer.AddAttribute(HtmlTextWriterAttribute.Name, "checkbox_item");
                writer.AddAttribute(HtmlTextWriterAttribute.Value, model.Property(model.getIdentifyFiled()).ToString());
                writer.RenderBeginTag(HtmlTextWriterTag.Input);
                writer.RenderEndTag();
                writer.RenderEndTag();
            }
            foreach (var p in propertys)
            {
                if (p.GetCustomAttributes(typeof(GirdHiddenAttribute), false).Length > 0) continue;
                writer.RenderBeginTag(HtmlTextWriterTag.Td);

                var value = p.GetValue(model, null);
                string result = string.Format("{0}", value);
                if (Source.DataFormatter.ContainsKey(p.Name))
                {
                    result = Source.DataFormatter[p.Name].Invoke(value, model);
                }

                writer.Write(result);
                writer.RenderEndTag();
            }

            List<string> links = new List<string>();
            foreach (var kv in Source.ActionLinks)
            {
                string url = FormatFromModel(kv.Value, model);
                links.Add(string.Format("<a href=\"{1}\">{0}</a>", kv.Key, url));
            }

            writer.RenderBeginTag(HtmlTextWriterTag.Td);
            writer.Write(string.Join("|", links.ToArray()));
            writer.RenderEndTag();
        }
コード例 #7
0
 public void CanReadExplicitReadOnlyProperty()
 {
     Model.Property("FullName", () => Customer.FirstName + " " + Customer.LastName);
     Assert.AreEqual("Paul Stovell", Model.ReadProperty <string>("FullName"));
 }
コード例 #8
0
 public void CanDefineExplicitReadOnlyProperty()
 {
     Model.Property("FullName", () => Customer.FirstName + " " + Customer.LastName);
     Assert.IsNotNull(Model.GetPropertyDescriptor("FullName"));
     Assert.IsTrue(Model.GetPropertyDescriptor("FullName").IsReadOnly);
 }
コード例 #9
0
 public void CanReadExplicitProperty()
 {
     Model.Property("FirstName", () => Customer.FirstName, value => Customer.FirstName = value);
     Assert.AreEqual("Paul", Model.ReadProperty <string>("FirstName"));
 }
コード例 #10
0
 public void CanDefineExplicitPropertyWithGetAndSet()
 {
     Model.Property("FirstName", () => Customer.FirstName, value => Customer.FirstName = value);
     Assert.IsNotNull(Model.GetPropertyDescriptor("FirstName"));
     Assert.IsFalse(Model.GetPropertyDescriptor("FirstName").IsReadOnly);
 }
コード例 #11
0
 public void CanWriteLambdaProperty()
 {
     Model.Property(() => Customer.FirstName);
     Model.WriteProperty("FirstName", "Jack");
     Assert.AreEqual("Jack", Model.ReadProperty <string>("FirstName"));
 }
コード例 #12
0
 public void CanReadLambdaProperty()
 {
     Model.Property(() => Customer.FirstName);
     Assert.AreEqual("Paul", Model.ReadProperty <string>("FirstName"));
 }
コード例 #13
0
 public void CanAddLambdaProperty()
 {
     Model.Property(() => Customer.FirstName);
     Assert.IsNotNull(Model.GetPropertyDescriptor("FirstName"));
     Assert.IsFalse(Model.GetPropertyDescriptor("FirstName").IsReadOnly);
 }
コード例 #14
0
ファイル: DataAccess.cs プロジェクト: AimilaGaven/Magic
        /// <summary>
        /// 获取sql参数
        /// </summary>
        /// <returns></returns>
        public virtual IDataParameter[] GetParameters(Model.Model model)
        {
            var propertys = model.GetType().GetProperties();

            List<IDataParameter> listSQLParamter = new List<IDataParameter>();
            foreach (var p in propertys)
            {
                listSQLParamter.Add(new SqlParameter() { ParameterName = p.Name, Value = model.Property(p.Name) });
            }
            return listSQLParamter.ToArray();
        }