コード例 #1
0
ファイル: ModelMaps.cs プロジェクト: viniciuscs84/Marvin
        public List <string> GetPropertiesNamesList()
        {
            List <string> list = ColumnsMap.Keys.ToList();

            if (_baseModelMap != null)
            {
                list.AddRange(_baseModelMap.GetPropertiesNamesList());
            }
            return(list);
        }
コード例 #2
0
ファイル: ModelMaps.cs プロジェクト: viniciuscs84/Marvin
        public static Dictionary <string, object> GetModelValues <TModel>(TModel model)
        {
            //TODO:Tratar exceções
            Type     modelType = model.GetType();
            ModelMap modelMap  = ModelMap.GetModelMap(modelType);
            Dictionary <string, object> modelValues = new Dictionary <string, object>();

            foreach (string propertyName in modelMap.GetPropertiesNamesList())
            {
                try
                {
                    object value = modelType.GetProperty(propertyName).GetValue(model, null);
                    if (value != null && modelMap.GetColumnMap(propertyName).DataType == DataAnnotations.ERBridge.DataType.Xml)
                    {
                        XmlDocument xml = new XmlDocument();
                        xml.InnerXml = Commons.Utilities.ClassToXML.SerializeObject(value, propertyName);
                        value        = xml.FirstChild.InnerXml;
                    }
                    else if (modelMap.GetColumnMap(propertyName).DataType == DataAnnotations.ERBridge.DataType.DateTime && DateTime.MinValue.Equals(value))
                    {
                        value = null;
                    }

                    ReferenceMapInfo referenceMap = modelMap.GetReferencesMap(propertyName);
                    if (value != null && referenceMap != null)
                    {
                        object keyValue = value.GetType().GetProperty(referenceMap.ReferenceKey).GetValue(value, null);
                        modelValues.Add(propertyName + "." + referenceMap.ReferenceKey, keyValue);
                    }
                    else
                    {
                        modelValues.Add(propertyName, value);
                    }
                }
                catch (Exception ex) {
                    Commons.Utilities.Logger.Error(ex);
                }
            }
            return(modelValues);
        }