Ejemplo n.º 1
0
        protected ORMTypeMapping FetchTypeMap(IRelatable relatee)
        {
            //Logger.Write("Testing");
            //LogWriter.gger.Writer.SystemTrace.MethodStart( MethodBase.GetCurrentMethod() );
            Type         t = relatee.GetType();
            Assembly     sourceAssembly = t.Assembly;
            string       resourceName   = t.Namespace + ".ORM.xml";
            XmlDocument  xDoc           = new XmlDocument();
            StreamReader xmlRaw         = new StreamReader(sourceAssembly.GetManifestResourceStream(resourceName));

            //	StreamReader xmlRaw = new StreamReader((esourceName);
            xDoc.Load(xmlRaw);

            string  query       = "//type[@fullname='" + t.FullName + "']";
            XmlNode typeMapNode = xDoc.DocumentElement.SelectSingleNode(query);

            if (typeMapNode != null)
            {
                ORMTypeMapping typeMap = new ORMTypeMapping(typeMapNode);
                return(typeMap);
            }
            else
            {
                //	SystemTrace.TraceError("Failed to load type map for {0}", t.FullName);
                //	ExceptionPolicy.HandleException( new NullReferenceException("Unable to fetch type map for " + t.FullName), "Exception" );
                string debug = "Unable to fetch type map for " + t.FullName;
            }
            return(null);
        }
Ejemplo n.º 2
0
        private void AssignOutputValuesToObject(SqlCommand cmd, IRelatable relatee, ORMTypeMapping typeMap, string relationKey)
        {
            //	Logger.Write( MethodBase.GetCurrentMethod() );
            ORMCommandMap ocm = typeMap.GetMapByName(relationKey);

            foreach (object ob in ocm.PropertyMaps)
            {
                ORMPropertyMap propMap = (ORMPropertyMap)ob;
                if ((propMap.DataDirection == ParameterDirection.Output) ||
                    (propMap.DataDirection == ParameterDirection.InputOutput))
                {
                    PropertyInfo prop;
                    Type         t = relatee.GetType();
                    prop = t.GetProperty(propMap.MemberName);
                    if (prop != null)
                    {
                        if (cmd.Parameters[propMap.Parameter].Value != DBNull.Value)
                        {
                            prop.SetValue(relatee, cmd.Parameters[propMap.Parameter].Value, null);
                        }
                    }
                    else
                    {
                        //	ExceptionPolicy.HandleException( new NullReferenceException(("Missing member " + t.FullName + "." + propMap.MemberName)), "Exception"  );
                    }
                }
            }
        }
Ejemplo n.º 3
0
        private void SetParameterValue(SqlParameter param, IRelatable relatee, string member)
        {
            //Logger.Write( MethodBase.GetCurrentMethod() );
            PropertyInfo propInfo;
            Type         t = relatee.GetType();

            propInfo = t.GetProperty(member);
            if (propInfo != null)
            {
                param.Value = propInfo.GetValue(relatee, null);
            }
            else
            {
                //Logger.Write("Read failed on member {0} on type {1}", "pos exception");
            }
        }