Beispiel #1
0
        public void HiveEntityUri_Cast_To_String()
        {
            var id = new HiveEntityUri(1);

            var output = (string)id;

            Assert.AreEqual(id.ToString(), output);
        }
Beispiel #2
0
        public void HiveEntityUri_Equals_ToString_With_String_Serialization()
        {
            var id  = new HiveEntityUri("TemplatePath/TemplateName.cshtml");
            var id2 = new HiveEntityUri("Home-Page.cshtml");

            var output  = id.ToString();
            var output2 = id2.ToString();

            Assert.AreEqual("TemplatePath/TemplateName.cshtml", HiveEntityUri.Parse(output.FromUrlBase64()).GetAllStringParts());
            Assert.AreEqual("Home-Page.cshtml", HiveEntityUri.Parse(output2.FromUrlBase64()).GetAllStringParts());
        }
        public void HiveEntityUriTypeConverter_Converts_From_String()
        {
            //Arrange

            var rawId = new HiveEntityUri("My-Test-Template.cshtml");
            var encodedId = rawId.ToString();
            var converter = TypeDescriptor.GetConverter(typeof(HiveEntityUri));

            //Act


            //Assert

            Assert.IsTrue(converter.CanConvertFrom(typeof(string)));
            Assert.AreEqual(encodedId, converter.ConvertTo(rawId, typeof(string)));
            Assert.AreEqual(rawId, converter.ConvertFrom(encodedId));
        }
        public void HiveEntityUriTypeConverter_Converts_From_String()
        {
            //Arrange

            var rawId     = new HiveEntityUri("My-Test-Template.cshtml");
            var encodedId = rawId.ToString();
            var converter = TypeDescriptor.GetConverter(typeof(HiveEntityUri));

            //Act


            //Assert

            Assert.IsTrue(converter.CanConvertFrom(typeof(string)));
            Assert.AreEqual(encodedId, converter.ConvertTo(rawId, typeof(string)));
            Assert.AreEqual(rawId, converter.ConvertFrom(encodedId));
        }
        public void HiveEntityUri_Cast_To_String()
        {
            var id = new HiveEntityUri(1);

            var output = (string)id;

            Assert.AreEqual(id.ToString(), output);
        }
        public void HiveEntityUri_Equals_ToString_With_String_Serialization()
        {
            var id = new HiveEntityUri("TemplatePath/TemplateName.cshtml");
            var id2 = new HiveEntityUri("Home-Page.cshtml");

            var output = id.ToString();
            var output2 = id2.ToString();

            Assert.AreEqual("TemplatePath/TemplateName.cshtml", HiveEntityUri.Parse(output.FromUrlBase64()).GetAllStringParts());
            Assert.AreEqual("Home-Page.cshtml", HiveEntityUri.Parse(output2.FromUrlBase64()).GetAllStringParts());
        }
        /// <summary>
        /// Binds the model
        /// </summary>
        /// <param name="controllerContext"></param>
        /// <param name="bindingContext"></param>
        /// <returns></returns>
        public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
        {
            var idName = string.IsNullOrEmpty(bindingContext.ModelName) ? "id" : bindingContext.ModelName;


            var valueProviderResult = bindingContext.GetValue(idName);

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

            var rawId = valueProviderResult.ConvertTo(typeof(string)) as string;

            HiveEntityUri nodeId = null;

            if (HiveEntityUri.TryParse(rawId, out nodeId))
            {
                //add the bound value to model state if it's not already there, generally only simple props will be there
                if (!bindingContext.ModelState.ContainsKey(idName))
                {
                    bindingContext.ModelState.Add(idName, new ModelState());
                    bindingContext.ModelState.SetModelValue(idName, new ValueProviderResult(nodeId, nodeId.ToString(), null));
                }
            }

            return(nodeId);
        }