Пример #1
0
        public void Bendy_CanSetAndGetFirstLevelPropertiesFromObject_Lazily()
        {
            // Arrange
            var testComplexObject  = DateTimeOffset.UtcNow;
            var testComplexObject2 = new KeyValuePair <string, int>("blah", 5);

            // Act
            dynamic bendyObject  = new BendyObject(testComplexObject);
            dynamic bendyObject2 = new BendyObject(testComplexObject2);

            // Assert
            Assert.AreEqual(testComplexObject.Date, bendyObject.Date);
            Assert.AreEqual(testComplexObject.Day, bendyObject.Day);
            Assert.AreEqual(testComplexObject.Date.Minute, bendyObject.Date.Minute);

            Assert.AreEqual(testComplexObject2.Key, bendyObject2.Key);
            Assert.AreEqual(testComplexObject2.Value, bendyObject2.Value);

            // Act again, test overwriting property values
            bendyObject.Day = 8;
            Assert.AreEqual(8, bendyObject.Day);

            bendyObject2.Value = 6; // Test overwriting value
            Assert.AreEqual(6, bendyObject2.Value);
        }
Пример #2
0
        public void Dictionary_Items_As_Properties()
        {
            var d = new Dictionary <string, string>
            {
                { "item1", "value1" },
                { "item2", "value2" },
                { "item3", "value3" },
            };
            var bendyDictionary   = new BendyObject(d);
            var dynamicDictionary = bendyDictionary.AsDynamic();

            Assert.IsNotNull(dynamicDictionary as IEnumerable);
            Assert.IsNotNull(dynamicDictionary as IEnumerable);
            Assert.AreEqual(d.Count, Enumerable.Count(dynamicDictionary));
            for (var i = 0; i < Enumerable.Count(dynamicDictionary); i++)
            {
                //first ensure that the key is a property of the Bendy object
                var keyVal = d.ElementAt(i);
                Assert.That(dynamicDictionary[keyVal.Key] == keyVal.Value);

                //next ensure that the value can be retreived from the enumerable item
                var item = Enumerable.ElementAt(dynamicDictionary, i);
                Assert.That(item.Value == keyVal.Value);
            }
        }
Пример #3
0
        public void ContentEditorControllerTests_Sort_Invalidated()
        {
            //Arrange

            var parentEntity = CreateEntityRevision(new RegexPropertyEditor());
            var subEntity1 = CreateEntityRevision(new RegexPropertyEditor());
            var subEntity2 = CreateEntityRevision(new RegexPropertyEditor());
            var subEntity3 = CreateEntityRevision(new RegexPropertyEditor());
            //setup the relations
            using (var writer = UmbracoApplicationContext.Hive.OpenWriter<IContentStore>())
            {
                writer.Repositories.AddRelation(parentEntity.Item, subEntity1.Item, FixedRelationTypes.DefaultRelationType, 0);
                writer.Repositories.AddRelation(parentEntity.Item, subEntity2.Item, FixedRelationTypes.DefaultRelationType, 0);
                writer.Repositories.AddRelation(parentEntity.Item, subEntity3.Item, FixedRelationTypes.DefaultRelationType, 0);
                writer.Complete();
            }

            //var controller = new ContentEditorController(GetBackOfficeRequestContext());
            var controller = new SortController(GetBackOfficeRequestContext());
            controller.InjectDependencies(new Dictionary<string, string>(), new Dictionary<string, string>(), GetBackOfficeRequestContext());

            //Act

            //a model not containing any of the id's or sort indexes
            var result = controller.SortForm(new SortModel());
            var model = new BendyObject(result.Data);

            //Assert

            dynamic check = model.AsDynamic();

            Assert.AreEqual("ValidationError", check.failureType);
            Assert.AreEqual("false", check.success);
        }
Пример #4
0
        public void Bendy_CanSetAndGetLazyProperty()
        {
            // Arrange
            var bendyObject  = new BendyObject();
            var delegateTest = 0;

            // Act
            bendyObject.AddLazy("MyProperty", () => "this is my value");
            bendyObject.AddLazy("FirstDelegate", () =>
            {
                delegateTest = 1;
                return("value 1");
            });
            bendyObject.AddLazy("SecondDelegate", () =>
            {
                delegateTest = 2;
                return("value 2");
            });
            dynamic bendyDynamic = bendyObject.AsDynamic();

            // Assert
            Assert.AreEqual("this is my value", bendyDynamic.MyProperty);
            Assert.AreEqual("value 2", bendyDynamic.SecondDelegate);
            Assert.AreEqual("value 1", bendyDynamic.FirstDelegate);
            Assert.AreEqual(1, delegateTest);
        }
Пример #5
0
        public void Bendy_ReturnsExplicitNull_IfPropertyNotFound()
        {
            // Arrange
            dynamic bendyObject = new BendyObject();

            // Act & Assert
            Assert.IsTrue(bendyObject.MyUnsetProperty == null, "MyUnsetProperty is not null; explicit null check should be true");
        }
Пример #6
0
        public void Bendy_CanImplicitlyCastToString_OnMethodCall_IfPropertyNotFound()
        {
            // Arrange
            dynamic bendyObject = new BendyObject();

            // Act & Assert
            Assert.IsTrue(IrrelevantTestMethod(bendyObject.MyUnsetProperty), "MyUnsetProperty as direct method call is not null");
        }
Пример #7
0
        public void WhenBendyIsEmpty_CanExplicitlyConvertToNullableInteger()
        {
            // Arrange
            dynamic nullHelper = new BendyObject();

            // Act & Assert
            CheckExplicitNonNullableTypeAndAssert <int>(nullHelper);
        }
Пример #8
0
        public void WhenBendyIsEmpty_CanExplicitlyConvertToDecimal()
        {
            // Arrange
            dynamic nullHelper = new BendyObject();

            // Act & Assert
            CheckExplicitTypeAndAssert <decimal>(nullHelper);
        }
Пример #9
0
        private static void CheckExplicitTypeAndAssert <T>(BendyObject nullHelper)
        {
            // Act
            var converted = (T)(dynamic)nullHelper;

            // Assert
            Assert.That(converted, Is.EqualTo(default(T)));
        }
Пример #10
0
        private static void CheckExplicitNonNullableTypeAndAssert <T>(BendyObject nullHelper)
            where T : struct
        {
            // Act
            var converted = (T?)(dynamic)nullHelper;

            // Assert
            Assert.That(converted.HasValue, Is.EqualTo(false));
        }
Пример #11
0
        public void Bendy_ReturnsImplicitString_IfPropertyNotFound_DuringMethodCall()
        {
            // Arrange
            dynamic bendyObject = new BendyObject();

            // Act & Assert
            Assert.That(bendyObject.MyUnsetProperty, Is.EqualTo(string.Empty), "MyUnsetProperty is not equal to string.Empty");
            Assert.That(bendyObject.MyUnsetProperty, Is.Not.Null, "MyUnsetProperty is null during impicit check, should be string.Empty");
        }
        public void SetUp()
        {
            var assemblies = new[]
            {
                typeof(Umbraco.Tests.Extensions.TestDynamicExtensions).Assembly
            };
            var supportedDynamicTypes = new[]
            {
                typeof(Content),
                typeof(BendyObject)
            };
            var supportedDynamicFieldTypes = new[]
            {
                typeof(Content),
                typeof(TypedAttribute),
                typeof(BendyObject)
            };
            var bendyMethods = DynamicExtensionsHelper.GetExtensions(assemblies, supportedDynamicTypes);
            var subBendyMethods = DynamicExtensionsHelper.GetExtensions<DynamicFieldExtensionAttribute>(assemblies, supportedDynamicFieldTypes);

            var bendy = new BendyObject();

            BendyObjectExtensionsHelper.ApplyDynamicExtensions<Content>(bendy, bendyMethods);

            var content = new Content();

            _bendy = bendy;
            _bendy["__OriginalItem"] = content;

            var attrType1 = new AttributeType {RenderTypeProvider = CorePluginConstants.FileUploadPropertyEditorId};
            var attrDef1 = new AttributeDefinition {AttributeType = attrType1};
            var attr1 = new TypedAttribute(attrDef1);

            var subBendy1 = new BendyObject();
            subBendy1["__OriginalItem"] = attr1;
            subBendy1.AddLazy("__Parent", () => bendy);
            subBendy1["__ParentKey"] = "Test";

            BendyObjectExtensionsHelper.ApplyDynamicFieldExtensions(content, CorePluginConstants.FileUploadPropertyEditorId, subBendy1, subBendyMethods);

            _bendy["Test"] = subBendy1;

            var attrType2 = new AttributeType { RenderTypeProvider = CorePluginConstants.TreeNodePickerPropertyEditorId };
            var attrDef2 = new AttributeDefinition { AttributeType = attrType2 };
            var attr2 = new TypedAttribute(attrDef2);

            var subBendy2 = new BendyObject();
            subBendy2["__OriginalItem"] = attr2;
            subBendy2.AddLazy("__Parent", () => bendy);
            subBendy2["__ParentKey"] = "Test2";

            BendyObjectExtensionsHelper.ApplyDynamicFieldExtensions(content, CorePluginConstants.TreeNodePickerPropertyEditorId, subBendy2, subBendyMethods);

            _bendy["Test2"] = subBendy2;
        }
Пример #13
0
        public void Bendy_CanSetAndGetProperty()
        {
            // Arrange
            dynamic bendyObject = new BendyObject();

            // Act
            bendyObject.MyProperty = "this is my value";

            // Assert
            Assert.AreEqual("this is my value", bendyObject.MyProperty);
        }
Пример #14
0
        public void WhenBendyIsEmpty_CanExplicitlyConvertToEmptyString()
        {
            // Arrange
            dynamic nullHelper = new BendyObject();

            // Act
            string converted = nullHelper;

            // Assert
            Assert.That(converted, Is.EqualTo(string.Empty));
        }
Пример #15
0
        public void MultipleRequestsForSameUnsetPropertyReturnSameValue()
        {
            // Arrange
            dynamic bendy = new BendyObject();

            // Act
            string myUnsetProperty             = bendy.MyUnsetProperty;
            string myUnsetPropertySecondAccess = bendy.MyUnsetProperty;

            // Assert
            Assert.That(myUnsetProperty, Is.EqualTo(myUnsetPropertySecondAccess));
        }
Пример #16
0
        public void ParsingDynamicStringWorks()
        {
            var hiveId = new HiveId(Guid.NewGuid());
            var myBendy = new BendyObject();
            myBendy["Item"] = new BendyObject();
            myBendy["Item"].Value = new BendyObject(hiveId);

            var asDynamic = (dynamic) myBendy;

            AttemptTuple<HiveId> result = HiveId.TryParse(asDynamic.Item.Value);

            Assert.That(result.Success, Is.True);
            Assert.That(result.Result, Is.EqualTo(hiveId));
        }
Пример #17
0
        public void MultipleRequestsForSameSetPropertyReturnSameValue()
        {
            // Arrange
            dynamic bendy = new BendyObject();

            // Act
            bendy.MySetProperty = "a value";
            var mySetProperty             = bendy.MySetProperty;
            var mySetPropertySecondAccess = bendy.MySetProperty;

            // Assert
            Assert.That(mySetProperty, Is.EqualTo(mySetPropertySecondAccess));
            Assert.That(mySetProperty, Is.SameAs(mySetPropertySecondAccess));
        }
Пример #18
0
        public void Bendy_CanSetAndGetEnumerableProperty()
        {
            // Arrange
            dynamic bendyObject = new BendyObject();
            var     numbers     = new[] { 1, 2, 3, 4, 5 };

            dynamic bendy1 = new BendyObject();

            bendy1.Blah = "blah1";
            dynamic bendy2 = new BendyObject();

            bendy2.Blah = "blah2";
            var alreadyBendy = new[] { bendy1, bendy2 };

            var bendyEnumWithLazy = new BendyObject();

            // Act
            bendyObject.Numbers      = numbers;
            bendyObject.AlreadyBendy = alreadyBendy;
            bendyEnumWithLazy.AddLazy("Lazy", () => alreadyBendy);

            // Assert
            int count = 0;

            foreach (var number in bendyObject.Numbers)
            {
                count++;
                Assert.AreEqual(count, number);
            }
            Assert.AreEqual(5, count);

            int alreadyBendyCount = 0;

            foreach (var already in bendyObject.AlreadyBendy)
            {
                alreadyBendyCount++;
                //Assert.AreEqual("blah" + alreadyBendyCount, already.Blah);
            }
            Assert.AreEqual(2, alreadyBendyCount);

            dynamic lazyBendy             = bendyEnumWithLazy;
            int     alreadyBendyLazyCount = 0;

            foreach (var already in lazyBendy.Lazy)
            {
                alreadyBendyLazyCount++;
                Assert.AreEqual("blah" + alreadyBendyLazyCount, already.Blah);
            }
            Assert.AreEqual(2, alreadyBendyLazyCount);
        }
Пример #19
0
        public void WhenBendyIsEmpty_CanConvertToAnyValueType()
        {
            // Arrange
            dynamic nullHelper = new BendyObject();
            var     valueTypes = TypeFinder.GetAllAssemblies()
                                 .SelectMany(x => x.GetTypes().Where(type => type.IsPrimitive && !type.IsEnum))
                                 .Distinct();

            // Act & Assert
            foreach (var valueType in valueTypes)
            {
                CheckConvertTypeAndAssert(valueType, nullHelper);
            }
        }
Пример #20
0
        public void ParsingDynamicLazyStringWorks()
        {
            var realId = new HiveId(Guid.NewGuid());
            var lazyHiveId = new Lazy<object>(() => realId.ToString());
            var hiveId = lazyHiveId.Value;
            var myBendy = new BendyObject();
            myBendy["Item"] = new BendyObject();
            myBendy["Item"].Value = new BendyObject(lazyHiveId);

            var asDynamic = (dynamic)myBendy;

            var result = HiveId.Parse(asDynamic.Item.Value);

            Assert.That(result, Is.EqualTo(realId));
        }
Пример #21
0
        public void WhenRunningMethod_ContainerBendy_IsPassedToDelegate()
        {
            // Arrange
            var         builder = new BendyBuilder();
            BendyObject _outer  = null;

            // Act
            builder.CreateMethod("MyMethod", (containerBendy) => SetRef(ref _outer, ref containerBendy));
            dynamic bendyDynamic = builder.ToBendy().AsDynamic();

            bendyDynamic.MyMethod();

            // Assert
            Assert.That(_outer, Is.Not.Null);
        }
Пример #22
0
        public void Bendy_CanImplicitlyCastToString_IfPropertyNotFound()
        {
            // Arrange
            dynamic bendyObject = new BendyObject();

            // Act
            bendyObject.MyProperty = "this is my value";

            // Assert
            Assert.AreEqual("this is my value", bendyObject.MyProperty);
            var myUnsetProperty = bendyObject.MyUnsetProperty;

            Assert.IsTrue(myUnsetProperty == null, "MyUnsetProperty is not null");
            Assert.IsTrue(IrrelevantTestMethod(myUnsetProperty), "MyUnsetProperty with variable reference is not null");
        }
Пример #23
0
        public void ParsingDynamicStringWorks()
        {
            var hiveId  = new HiveId(Guid.NewGuid());
            var myBendy = new BendyObject();

            myBendy["Item"]       = new BendyObject();
            myBendy["Item"].Value = new BendyObject(hiveId);

            var asDynamic = (dynamic)myBendy;

            AttemptTuple <HiveId> result = HiveId.TryParse(asDynamic.Item.Value);

            Assert.That(result.Success, Is.True);
            Assert.That(result.Result, Is.EqualTo(hiveId));
        }
Пример #24
0
        public void ParsingDynamicLazyStringWorks()
        {
            var realId     = new HiveId(Guid.NewGuid());
            var lazyHiveId = new Lazy <object>(() => realId.ToString());
            var hiveId     = lazyHiveId.Value;
            var myBendy    = new BendyObject();

            myBendy["Item"]       = new BendyObject();
            myBendy["Item"].Value = new BendyObject(lazyHiveId);

            var asDynamic = (dynamic)myBendy;

            var result = HiveId.Parse(asDynamic.Item.Value);

            Assert.That(result, Is.EqualTo(realId));
        }
Пример #25
0
        public void Bendy_CanSetAndGetDeepProperty()
        {
            // Arrange
            dynamic bendyObject = new BendyObject();

            // Act
            bendyObject.MyFirstProperty          = "this is my first value";
            bendyObject.MySecondProperty.MyValue = "this is my first nested value";
            bendyObject.MyThirdProperty          = new KeyValuePair <string, string>("fake key", "fake value");

            // Assert
            Assert.AreEqual("this is my first value", bendyObject.MyFirstProperty);
            Assert.AreEqual("this is my first nested value", bendyObject.MySecondProperty.MyValue);
            Assert.AreEqual("fake key", bendyObject.MyThirdProperty.Key);
            Assert.AreEqual("fake value", bendyObject.MyThirdProperty.Value);
        }
        /// <summary>
        /// Applies the dynamic extensions.
        /// </summary>
        /// <param name="bendyObject">The bendy object.</param>
        public static void ApplyDynamicExtensions <TItemType>(BendyObject bendyObject, IEnumerable <Assembly> dynamicExtensionAssemblies = null)
        {
            IEnumerable <MethodInfo> methods;
            var supportedTypes = new[]
            {
                typeof(BendyObject), typeof(TItemType)
            };

            if (dynamicExtensionAssemblies == null)
            {
                dynamicExtensionAssemblies = TypeFinder.GetFilteredDomainAssemblies().ToArray();
            }

            methods = DynamicExtensionsHelper.GetExtensions(dynamicExtensionAssemblies, supportedTypes);

            ApplyDynamicExtensions <TItemType>(bendyObject, methods);
        }
Пример #27
0
        public void Bendy_Can_Iterate_Itself_If_Enumerable()
        {
            var list = new List <string>
            {
                "item 1",
                "item 2",
                "item 3"
            };
            var bendyList   = new BendyObject(list);
            var dynamicList = bendyList.AsDynamic();

            Assert.IsNotNull(dynamicList as IEnumerable);
            Assert.AreEqual(list.Count, Enumerable.Count(dynamicList));
            for (var i = 0; i < Enumerable.Count(dynamicList); i++)
            {
                var item = Enumerable.ElementAt(dynamicList, i);
                Assert.That(list[i] == item);
            }
        }
Пример #28
0
        public void Run(QueryTestDescription <TModel> onItem)
        {
            // Arrange
            var nullQueryableDataSource = new NullQueryableDataSource();
            var context      = GenerateContext <TModel>(nullQueryableDataSource);
            var dynamicQuery = onItem.OriginalExpression as Expression <Func <TModel, bool> >;

            dynamic test = new ExpandoObject();

            test.colour = "orange";

            dynamic test2 = new BendyObject();

            test2.colour = "orange";

            var query = context.Where(dynamicQuery ?? onItem.OriginalQuery);

            // Act
            query.ToList();
            var generatedQuery = nullQueryableDataSource.GeneratedQueryDescription;

            // Assert
            AssertingCriteriaVisitor <TModel> .Check(onItem, generatedQuery.Criteria);
        }
        public void ContentEditorControllerTests_Sort_Invalidated()
        {
            //Arrange

            var parentEntity = CreateEntityRevision(new RegexPropertyEditor());
            var subEntity1   = CreateEntityRevision(new RegexPropertyEditor());
            var subEntity2   = CreateEntityRevision(new RegexPropertyEditor());
            var subEntity3   = CreateEntityRevision(new RegexPropertyEditor());

            //setup the relations
            using (var writer = UmbracoApplicationContext.Hive.OpenWriter <IContentStore>())
            {
                writer.Repositories.AddRelation(parentEntity.Item, subEntity1.Item, FixedRelationTypes.DefaultRelationType, 0);
                writer.Repositories.AddRelation(parentEntity.Item, subEntity2.Item, FixedRelationTypes.DefaultRelationType, 0);
                writer.Repositories.AddRelation(parentEntity.Item, subEntity3.Item, FixedRelationTypes.DefaultRelationType, 0);
                writer.Complete();
            }

            //var controller = new ContentEditorController(GetBackOfficeRequestContext());
            var controller = new SortController(GetBackOfficeRequestContext());

            controller.InjectDependencies(new Dictionary <string, string>(), new Dictionary <string, string>(), GetBackOfficeRequestContext());

            //Act

            //a model not containing any of the id's or sort indexes
            var result = controller.SortForm(new SortModel());
            var model  = new BendyObject(result.Data);

            //Assert

            dynamic check = model.AsDynamic();

            Assert.AreEqual("ValidationError", check.failureType);
            Assert.AreEqual("false", check.success);
        }
        /// <summary>
        /// Applies the dynamic extensions.
        /// </summary>
        /// <param name="bendyObject">The bendy object.</param>
        /// <param name="extentionMethods">The extention methods.</param>
        public static void ApplyDynamicExtensions <TItemType>(BendyObject bendyObject, IEnumerable <MethodInfo> extentionMethods)
        {
            var typeKey = typeof(TItemType).FullName;

            foreach (var method in extentionMethods)
            {
                var        methodKey    = method.DeclaringType.FullName + method.Name + TypeExtensions.GetCacheKeyFromParameters(method.GetParameters());
                MethodInfo methodCopied = method;

                var dynamicMeth = _applyableDynamicExtensionsCache
                                  .GetOrAdd(typeKey + methodKey, key =>
                {
                    var attrib = methodCopied.GetCustomAttributes <DynamicExtensionAttribute>(false).FirstOrDefault();

                    if (attrib == null)
                    {
                        return(null);
                    }

                    var parameters = methodCopied.GetParameters();

                    var expressionParams = parameters.Select(p => Expression.Parameter(p.ParameterType, p.Name)).ToArray();
                    var expression       = Expression.Call(methodCopied, expressionParams.Cast <Expression>());

                    var sig           = new Signature(!string.IsNullOrWhiteSpace(attrib.Name) ? attrib.Name : methodCopied.Name, methodCopied.ReturnType, parameters.Select(x => new Parameter(x.Name, x.ParameterType)).ToArray());
                    var dynamicMethod = new DynamicMethod(sig, Expression.Lambda(expression, expressionParams),
                                                          parameters[0].ParameterType == typeof(TItemType) ? typeof(TItemType) : null);
                    return(dynamicMethod);
                });

                if (dynamicMeth != null)
                {
                    bendyObject.AddMethod(dynamicMeth);
                }
            }
        }
Пример #31
0
 public override void ConfigureApplication(string providerKey, XDocument configXml, BendyObject installParams)
 {
     //TODO: Setup config
 }
 public override void ConfigureApplication(string providerKey, XDocument configXml, BendyObject installParams)
 {
     //TODO: Setup config
 }
Пример #33
0
 public PartialViewMacroModel(Content page, BendyObject macroParams)
 {
     CurrentPage = page;
     MacroParameters = macroParams.AsDynamic();
 }
        public void SetUp()
        {
            var assemblies = new[]
            {
                typeof(Rebel.Tests.Extensions.TestDynamicExtensions).Assembly
            };
            var supportedDynamicTypes = new[]
            {
                typeof(Content),
                typeof(BendyObject)
            };
            var supportedDynamicFieldTypes = new[]
            {
                typeof(Content),
                typeof(TypedAttribute),
                typeof(BendyObject)
            };
            var bendyMethods    = DynamicExtensionsHelper.GetExtensions(assemblies, supportedDynamicTypes);
            var subBendyMethods = DynamicExtensionsHelper.GetExtensions <DynamicFieldExtensionAttribute>(assemblies, supportedDynamicFieldTypes);

            var bendy = new BendyObject();

            BendyObjectExtensionsHelper.ApplyDynamicExtensions <Content>(bendy, bendyMethods);

            var content = new Content();

            _bendy = bendy;
            _bendy["__OriginalItem"] = content;

            var attrType1 = new AttributeType {
                RenderTypeProvider = CorePluginConstants.FileUploadPropertyEditorId
            };
            var attrDef1 = new AttributeDefinition {
                AttributeType = attrType1
            };
            var attr1 = new TypedAttribute(attrDef1);

            var subBendy1 = new BendyObject();

            subBendy1["__OriginalItem"] = attr1;
            subBendy1.AddLazy("__Parent", () => bendy);
            subBendy1["__ParentKey"] = "Test";

            BendyObjectExtensionsHelper.ApplyDynamicFieldExtensions(content, CorePluginConstants.FileUploadPropertyEditorId, subBendy1, subBendyMethods);

            _bendy["Test"] = subBendy1;

            var attrType2 = new AttributeType {
                RenderTypeProvider = CorePluginConstants.TreeNodePickerPropertyEditorId
            };
            var attrDef2 = new AttributeDefinition {
                AttributeType = attrType2
            };
            var attr2 = new TypedAttribute(attrDef2);

            var subBendy2 = new BendyObject();

            subBendy2["__OriginalItem"] = attr2;
            subBendy2.AddLazy("__Parent", () => bendy);
            subBendy2["__ParentKey"] = "Test2";

            BendyObjectExtensionsHelper.ApplyDynamicFieldExtensions(content, CorePluginConstants.TreeNodePickerPropertyEditorId, subBendy2, subBendyMethods);

            _bendy["Test2"] = subBendy2;
        }
Пример #35
0
        /// <summary>
        /// Creates any necessary configuration files/transforms for the provider to operate
        /// </summary>
        /// <param name="providerKey">The provider key for the provider that is being configured</param>
        /// <param name="configXml">The configuration xml file that needs to be written to</param>
        /// <param name="installParams">TODO: This is only a temporary way of passing arbitrary parameters to a provider to create its configuration,
        /// we need to allow hive providers to return a model for which we display a form/installer for and then pass in that
        /// model to the installParams</param>
        public override void ConfigureApplication(string providerKey, XDocument configXml, BendyObject installParams)
        {
            dynamic dynamicParams = installParams;
            string  dbType        = dynamicParams.DatabaseType.ToString();

            var connectionString = "";
            var providerName     = "";
            var nhDriver         = "";

            //we need to create the connection strings if it's not custom

            switch (dbType)
            {
            case "MSSQL":
                connectionString = string.Format("Data Source={0}; Initial Catalog={1};User Id={2};Password={3}",
                                                 dynamicParams.Server, dynamicParams.DatabaseName, dynamicParams.Username, dynamicParams.Password);
                providerName = "System.Data.SqlClient";
                nhDriver     = "MsSql2008";
                break;

            case "MySQL":
                connectionString = string.Format("Server={0}; Database={1};Uid={2};Pwd={3}",
                                                 dynamicParams.Server, dynamicParams.DatabaseName, dynamicParams.Username, dynamicParams.Password);
                providerName = "MySql.Data.MySQLClient";
                nhDriver     = "MySql";
                break;

            case "SQLCE":
                connectionString = "Data Source=|DataDirectory|Umbraco.sdf";
                providerName     = "System.Data.SqlServerCe.4.0";
                nhDriver         = "MsSqlCe4";
                break;

            case "Custom":
                //limiting to MS SQL atm
                connectionString = dynamicParams.ConnectionString;
                providerName     = "System.Data.SqlClient";
                nhDriver         = "MsSql2008";
                break;
            }

            var connstringKey = "";

            var hiveElement = new ProviderConfigurationSection()
            {
                ConnectionStringKey = "{0}.ConnString",
                Driver         = SupportedNHDrivers.MsSqlCe4,
                SessionContext = "web"
            };

            var elementName = providerKey;

            hiveElement.DriverAsString = nhDriver;
            connstringKey = string.Format(hiveElement.ConnectionStringKey, providerKey);
            hiveElement.ConnectionStringKey = connstringKey;

            DeepConfigManager.SerializeProviderConfigSection(configXml, hiveElement, "umbraco/persistenceProviderSettings/" + elementName, true);

            //add the connection strings
            var connStrings = new ConnectionStringsSection();

            connStrings.ConnectionStrings.Add(new ConnectionStringSettings(connstringKey, connectionString, providerName));
            //now serialize the connection strings to the config
            var connectionStringElement = DeepConfigManager.SerializeProviderConfigSection(configXml, connStrings, "connectionStrings", false);
            var newConnString           = new XElement("add");

            DeepConfigManager.AddPropertiesToElement(connStrings.ConnectionStrings[0], newConnString);
            connectionStringElement.Add(newConnString);

            // The following is superceded by the above to support multiple "add" references: DeepConfigManager.SerializeProviderConfigSection(configXml, connStrings.ConnectionStrings[0], "connectionStrings/add", false);
        }
Пример #36
0
 public InsertMediaModel(HiveId mediaId, string mediaFilePath, BendyObject mediaParameters)
 {
     MediaId = mediaId;
     MediaParameters = mediaParameters.AsDynamic();
     MediaFilePath = mediaFilePath;
 }
 private static void AddToBendy(BendyObject bendy, string attribAlias, object value)
 {
     bendy[attribAlias.ToRebelAlias(StringAliasCaseType.PascalCase)] = value;
     bendy[attribAlias.ToRebelAlias(StringAliasCaseType.Unchanged)]  = value;
 }
 /// <summary>
 /// Creates any necessary configuration files/transforms for the provider to operate
 /// </summary>
 /// <param name="configXml">The configuration xml file that needs to be written to</param>
 /// <param name="installParams">
 /// TODO: This is only a temporary way of passing arbitrary parameters to a provider to create its configuration,
 /// we need to allow hive providers to return a model for which we display a form/installer for and then pass in that
 /// model to the installParams
 /// </param>
 /// <param name="providerKey">The provider key for the provider that is being configured</param>
 public abstract void ConfigureApplication(string providerKey, XDocument configXml, BendyObject installParams);
        /// <summary>
        /// Creates any necessary configuration files/transforms for the provider to operate
        /// </summary>
        /// <param name="providerKey">The provider key for the provider that is being configured</param>
        /// <param name="configXml">The configuration xml file that needs to be written to</param>
        /// <param name="installParams">TODO: This is only a temporary way of passing arbitrary parameters to a provider to create its configuration,
        /// we need to allow hive providers to return a model for which we display a form/installer for and then pass in that
        /// model to the installParams</param>
        public override void ConfigureApplication(string providerKey, XDocument configXml, BendyObject installParams)
        {
            dynamic dynamicParams = installParams;
            string dbType = dynamicParams.DatabaseType.ToString();

            var connectionString = "";
            var providerName = "";
            var nhDriver = "";
            //we need to create the connection strings if it's not custom

            switch (dbType)
            {
                case "MSSQL":
                    connectionString = string.Format("Data Source={0}; Initial Catalog={1};User Id={2};Password={3}",
                                                     dynamicParams.Server, dynamicParams.DatabaseName, dynamicParams.Username, dynamicParams.Password);
                    providerName = "System.Data.SqlClient";
                    nhDriver = "MsSql2008";
                    break;
                case "MySQL":
                    connectionString = string.Format("Server={0}; Database={1};Uid={2};Pwd={3}",
                                                     dynamicParams.Server, dynamicParams.DatabaseName, dynamicParams.Username, dynamicParams.Password);
                    providerName = "MySql.Data.MySQLClient";
                    nhDriver = "MySql";
                    break;
                case "SQLCE":
                    connectionString = "Data Source=|DataDirectory|Umbraco.sdf";
                    providerName = "System.Data.SqlServerCe.4.0";
                    nhDriver = "MsSqlCe4";
                    break;
                case "Custom":
                    //limiting to MS SQL atm 
                    connectionString = dynamicParams.ConnectionString;
                    providerName = "System.Data.SqlClient";
                    nhDriver = "MsSql2008";
                    break;
            }

            var connstringKey = "";

            var hiveElement = new ProviderConfigurationSection()
                       {
                           ConnectionStringKey = "{0}.ConnString",
                           Driver = SupportedNHDrivers.MsSqlCe4,
                           SessionContext = "web"
                       };

            var elementName = providerKey;
    
            hiveElement.DriverAsString = nhDriver;
            connstringKey = string.Format(hiveElement.ConnectionStringKey, providerKey);
            hiveElement.ConnectionStringKey = connstringKey;

            DeepConfigManager.SerializeProviderConfigSection(configXml, hiveElement, "umbraco/persistenceProviderSettings/" + elementName, true);

            //add the connection strings
            var connStrings = new ConnectionStringsSection();
            connStrings.ConnectionStrings.Add(new ConnectionStringSettings(connstringKey, connectionString, providerName));
            //now serialize the connection strings to the config
            var connectionStringElement = DeepConfigManager.SerializeProviderConfigSection(configXml, connStrings, "connectionStrings", false);
            var newConnString = new XElement("add");
            DeepConfigManager.AddPropertiesToElement(connStrings.ConnectionStrings[0], newConnString);
            connectionStringElement.Add(newConnString);
            
            // The following is superceded by the above to support multiple "add" references: DeepConfigManager.SerializeProviderConfigSection(configXml, connStrings.ConnectionStrings[0], "connectionStrings/add", false);
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="PersistenceMetadata"/> class.
 /// </summary>
 public PersistenceMetadata()
 {         
     SourceEntity = new BendyObject();
 }
Пример #41
0
 void SetRef(ref BendyObject field, ref BendyObject inomcing)
 {
     field = inomcing;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="T:System.Object"/> class.
 /// </summary>
 public PersistenceMetadata(string ownerProviderAlias, string returnedByProviderAlias)
 {
     OwnerProviderAlias = ownerProviderAlias;
     ReturnedByProviderAlias = returnedByProviderAlias;
     SourceEntity = new BendyObject();
 }
Пример #43
0
 public override void ConfigureApplication(string providerKey, string providerAlias, XDocument configXml, BendyObject installParams)
 {
     
 }