Ejemplo n.º 1
0
        public static DictionaryOrientDBEntity ToDictionaryOrientDBEntity(this OrientDBEntity entity)
        {
            DictionaryOrientDBEntity dentity = new DictionaryOrientDBEntity();
            var properties = entity.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);

            foreach (var property in properties)
            {
                dentity.SetField(property.Name, property.GetValue(entity));
            }
            return(dentity);
        }
        private object SerializeEntity(OrientDBEntity input)
        {
            StringBuilder stringBuilder = new StringBuilder();

            PropertyInfo[] properties = input.GetType().GetProperties();

            if (properties.Any())
            {
                foreach (PropertyInfo propertyInfo in properties)
                {
                    switch (propertyInfo.Name)
                    {
                    case "OClassName":
                        continue;

                    case "ORID":
                        continue;

                    case "OVersion":
                        continue;

                    case "OClassId":
                        continue;

                    default:
                        if ((!string.IsNullOrWhiteSpace(propertyInfo.Name)) && (propertyInfo.Name[0] != '@'))
                        {
                            if (stringBuilder.Length > 0)
                            {
                                stringBuilder.Append(",");
                            }

                            stringBuilder.AppendFormat("{0}:{1}", propertyInfo.Name, SerializeValue(propertyInfo.GetValue(input), propertyInfo.PropertyType));
                        }
                        break;
                    }
                }
            }

            return(stringBuilder.ToString());
        }