private void SaveInjection()
        {
            try
            {
                var           ctlModule = new InjectionController();
                InjectionInfo objInj    = null;

                objInj = !string.IsNullOrEmpty(hidInjectionId.Value) ? ctlModule.GetInjectionContent(int.Parse(hidInjectionId.Value)) : new InjectionInfo();

                PopulateInjectionForSave(ref objInj);

                if (!string.IsNullOrEmpty(hidInjectionId.Value))
                {
                    ctlModule.UpdateInjectionContent(objInj);
                }
                else
                {
                    ctlModule.AddInjectionContent(objInj);
                }
            }
            catch (Exception ex)
            {
                HandleException(ex);
            }
        }
예제 #2
0
        public static InjectionType GetInjectionType(InjectionInfo injection)
        {
            Requires.NotNull("injection", injection);

            var isHtmlType = IsHtmlInjectionType(injection);

            if (isHtmlType && injection.InjectTop)
            {
                return(InjectionType.HtmlTop);
            }
            else if (isHtmlType && !injection.InjectTop)
            {
                return(InjectionType.HtmlBottom);
            }

            if (injection.InjectContent.EndsWith(".js"))
            {
                return(InjectionType.JavaScript);
            }

            if (Regex.IsMatch(injection.InjectContent, CSS_PATTERN, RegexOptions.IgnoreCase))
            {
                return(InjectionType.CSS);
            }

            throw new ArgumentOutOfRangeException("InjectionType", "InjectionType parameters do not match a known injection type.");
        }
예제 #3
0
        public InjectionInfo GetInjectionContent(int InjectionContentId)
        {
            InjectionInfo objInj = new InjectionInfo();

            objInj.Fill(DataProvider.Instance().GetInjectionContent(InjectionContentId));
            return(objInj);
        }
예제 #4
0
        private static bool IsHtmlInjectionType(InjectionInfo injection)
        {
            if (injection.CustomProperties.Any(p => p.Name == InjectionInfoMembers.InjectionTypeField))
            {
                return
                    (injection.CustomProperties.FirstOrDefault(p => p.Name == InjectionInfoMembers.InjectionTypeField)
                     .Value == "1");
            }

            return(true);
        }
        public static int GetCrmPriority(InjectionInfo injection)
        {
            Requires.NotNull("injection", injection);
            Requires.NotNull("injection.CustomProperties", injection.CustomProperties);

            if (!injection.CustomProperties.Any(p => p.Name == InjectionInfoMembers.CrmPriorityField)) return Null.NullInteger;

            var priorityInput = injection.CustomProperties.FirstOrDefault(p => p.Name == InjectionInfoMembers.CrmPriorityField).Value;

            return GetCrmPriority(priorityInput);
        }
예제 #6
0
        public object Get(Type type, ParameterList parameterList)
        {
            if (!injectionHash.ContainsKey(type.FullName))
            {
                return(null);
            }

            InjectionInfo injectionInfo = injectionHash[type.FullName] as InjectionInfo;
            Type          serviceType   = injectionInfo.ServiceType;

            if (injectionInfo.Instance != null)
            {
                return(injectionInfo.Instance);
            }

            if (parameterList == null)
            {
                parameterList = new ParameterList();
            }

            object instance;

            if (injectionInfo.CreationFunc != null)
            {
                instance = injectionInfo.CreationFunc(type, this, parameterList);
            }
            else
            {
                ConstructorInfo constInfo  = GetConstructorInfo(injectionInfo, parameterList);
                object[]        parameters = GetConstructorParameterList(type, constInfo, parameterList);

                instance = constInfo.Invoke(parameters);
            }

            if (injectionInfo.IsSingleton)
            {
                injectionInfo.Instance = instance;
            }

            if (injectionInfo.IsPropertiesAutowired)
            {
                InjectProperty(instance, parameterList);
            }

            if (injectionInfo.PostFunc != null)
            {
                injectionInfo.PostFunc(type, instance, this, parameterList);
            }

            return(instance);
        }
예제 #7
0
        public void Into_Condition_Correct()
        {
            //Arrange
            IBinder       binder  = new Binder();
            InjectionInfo Context = new InjectionInfo();

            Context.parentType = typeof(object);
            //Act
            binder.Bind <object>().As(1).Into(typeof(object));
            //Assert
            Assert.AreEqual(
                true,
                binder.GetBinding <object>(1).condition(Context));
        }
예제 #8
0
        public static string GetCrmProvider(InjectionInfo injection)
        {
            Requires.NotNull("injection", injection);
            Requires.NotNull("injection.CustomProperties", injection.CustomProperties);

            if (!injection.CustomProperties.Any(p => p.Name == InjectionInfoMembers.CrmProviderField))
            {
                return(string.Empty);
            }

            var provider = injection.CustomProperties.FirstOrDefault(p => p.Name == InjectionInfoMembers.CrmProviderField).Value;

            return(GetCrmProvider(provider));
        }
예제 #9
0
        public void ImportModule(int ModuleID, string Content, string Version, int UserID)
        {
            try
            {
                var injContents = DotNetNuke.Common.Globals.GetContent(Content, "//injectionContents");

                foreach (XmlNode injContent in injContents.SelectNodes("//injectionContent"))
                {
                    var objInj = new InjectionInfo();

                    objInj.ModuleId = ModuleID;

                    if ((injContent.SelectSingleNode("injectTop") != null))
                    {
                        objInj.InjectTop = bool.Parse(injContent.SelectSingleNode("injectTop").InnerText);
                    }

                    if ((injContent.SelectSingleNode("injectName") != null))
                    {
                        objInj.InjectName = injContent.SelectSingleNode("injectName").InnerText;
                    }

                    if ((injContent.SelectSingleNode("injectContent") != null))
                    {
                        objInj.InjectContent = injContent.SelectSingleNode("injectContent").InnerText;
                    }

                    if ((injContent.SelectSingleNode("isEnabled") != null))
                    {
                        objInj.IsEnabled = bool.Parse(injContent.SelectSingleNode("isEnabled").InnerText);
                    }

                    if ((injContent.SelectSingleNode("orderShown") != null))
                    {
                        objInj.OrderShown = int.Parse(injContent.SelectSingleNode("orderShown").InnerText, System.Globalization.NumberStyles.Integer);
                    }

                    if ((injContent.SelectSingleNode("customProperties") != null))
                    {
                        objInj.CustomProperties = (List <CustomPropertyInfo>)injContent.SelectSingleNode("customProperties").InnerText.FromJson(typeof(CustomPropertyInfo));
                    }

                    AddInjectionContent(objInj);
                }
            }
            catch (Exception ex)
            {
                Exceptions.LogException(ex);
            }
        }
예제 #10
0
        public static int GetCrmPriority(InjectionInfo injection)
        {
            Requires.NotNull("injection", injection);
            Requires.NotNull("injection.CustomProperties", injection.CustomProperties);

            if (!injection.CustomProperties.Any(p => p.Name == InjectionInfoMembers.CrmPriorityField))
            {
                return(Null.NullInteger);
            }

            var priorityInput = injection.CustomProperties.FirstOrDefault(p => p.Name == InjectionInfoMembers.CrmPriorityField).Value;

            return(GetCrmPriority(priorityInput));
        }
예제 #11
0
        public void When_Condition_Correct()
        {
            //Arrange
            IBinder       binder  = new Binder();
            InjectionInfo Context = new InjectionInfo();
            object        o       = new object();

            Context.id = o;
            //Act
            binder.Bind <object>().As(1).When((context) => { return(context.id == o); });
            //Assert
            Assert.AreEqual(
                true,
                binder.GetBinding <object>(1).condition(Context));
        }
예제 #12
0
        public object Create(InjectionInfo context)
        {
            var cube = this.container.Resolve <Cube>();

            var rotator = cube.gameObject.AddComponent <Rotator>();

            rotator.speed = Random.Range(0.05f, 5.0f);

            cube.color = new Color(Random.Range(0, 1.0f), Random.Range(0, 1.0f), Random.Range(0, 1.0f));

            var transform = cube.GetComponent <Transform>();

            transform.position = new Vector3(1.5f * this.currentColumn++, -1.5f * this.currentLine, 0);

            if (this.currentColumn >= MAX_COLUMNS)
            {
                this.currentLine++;
                this.currentColumn = 0;
            }

            return(cube.gameObject);
        }
예제 #13
0
        private ConstructorInfo GetConstructorInfo(InjectionInfo injectionInfo, ParameterList parameterList)
        {
            ConstructorInfo targetConstInfo = injectionInfo.ServiceConstructor;

            if (targetConstInfo != null)
            {
                return(targetConstInfo);
            }

            int maxCount = 0;
            int count    = 0;

            foreach (ConstructorInfo constInfo in injectionInfo.ServiceType.GetConstructors())
            {
                count = 0;
                foreach (ParameterInfo paramInfo in constInfo.GetParameters())
                {
                    if (parameterList.ContainsKey(injectionInfo.ImplementType, paramInfo.Name) &&
                        IsCast(parameterList[injectionInfo.ImplementType, paramInfo.Name].GetType(), paramInfo.ParameterType))
                    {
                        count++;
                    }
                    else if (Has(paramInfo.ParameterType))
                    {
                        count++;
                    }
                }

                if (count > maxCount)
                {
                    targetConstInfo = constInfo;
                    maxCount        = count;
                }
            }

            return(targetConstInfo);
        }
예제 #14
0
 virtual public object Create(InjectionInfo context)
 {
     return(this);
 }
        public void ImportModule(int ModuleID, string Content, string Version, int UserID)
        {
            try
            {
                var injContents = DotNetNuke.Common.Globals.GetContent(Content, "//injectionContents");

                foreach (XmlNode injContent in injContents.SelectNodes("//injectionContent"))
                {
                    var objInj = new InjectionInfo();

                    objInj.ModuleId = ModuleID;

                    if ((injContent.SelectSingleNode("injectTop") != null))
                    {
                        objInj.InjectTop = bool.Parse(injContent.SelectSingleNode("injectTop").InnerText);
                    }

                    if ((injContent.SelectSingleNode("injectName") != null))
                    {
                        objInj.InjectName = injContent.SelectSingleNode("injectName").InnerText;
                    }

                    if ((injContent.SelectSingleNode("injectContent") != null))
                    {
                        objInj.InjectContent = injContent.SelectSingleNode("injectContent").InnerText;
                    }

                    if ((injContent.SelectSingleNode("isEnabled") != null))
                    {
                        objInj.IsEnabled = bool.Parse(injContent.SelectSingleNode("isEnabled").InnerText);
                    }

                    if ((injContent.SelectSingleNode("orderShown") != null))
                    {
                        objInj.OrderShown = int.Parse(injContent.SelectSingleNode("orderShown").InnerText, System.Globalization.NumberStyles.Integer);
                    }

                    if ((injContent.SelectSingleNode("customProperties") != null))
                    {
                        objInj.CustomProperties = (List<CustomPropertyInfo>)injContent.SelectSingleNode("customProperties").InnerText.FromJson(typeof(CustomPropertyInfo));
                    }

                    AddInjectionContent(objInj);
                }
            }
            catch (Exception ex)
            {
                Exceptions.LogException(ex);
            }
        }
        private void BindForm(int ItemId)
        {
            var ctlModule = new InjectionController();
            var injection = new InjectionInfo();

            injection = ctlModule.GetInjectionContent(ItemId);

            txtName.Text    = injection.InjectName;
            txtContent.Text = Server.HtmlDecode(injection.InjectContent);
            radInject.ClearSelection();

            if (injection.InjectTop)
            {
                radInject.Items.FindByText(GetLocalizedString("radInject.0.Text")).Selected = true;
            }
            else
            {
                radInject.Items.FindByText(GetLocalizedString("radInject.1.Text")).Selected = true;
            }

            chkEnabled.Checked   = injection.IsEnabled;
            hidInjectionId.Value = injection.InjectionId.ToString();
            cvName.Enabled       = false;

            cmdDelete.Visible = !string.IsNullOrEmpty(hidInjectionId.Value);

            if (injection.CustomProperties.Any(p => p.Name == InjectionInfoMembers.CrmPriorityField))
            {
                var priorityLevel = injection.CustomProperties.FirstOrDefault(p => p.Name == InjectionInfoMembers.CrmPriorityField).Value;
                txtCrmPriority.Text = (priorityLevel == "-1") ? string.Empty : priorityLevel;
            }

            if (injection.CustomProperties.Any(p => p.Name == InjectionInfoMembers.CrmProviderField))
            {
                var provider = injection.CustomProperties.FirstOrDefault(p => p.Name == InjectionInfoMembers.CrmProviderField).Value;
                ddlCrmProvider.ClearSelection();
                ddlCrmProvider.SelectedIndex = int.Parse(provider);
            }

            if (injection.CustomProperties.Any(p => p.Name == InjectionInfoMembers.LastUpdatedByField))
            {
                var updatedBy   = injection.CustomProperties.FirstOrDefault(p => p.Name == InjectionInfoMembers.LastUpdatedByField);
                var updatedDate = injection.CustomProperties.FirstOrDefault(p => p.Name == InjectionInfoMembers.LastUpdatedDateField);

                var user = UserController.GetUserById(PortalSettings.PortalId, int.Parse(updatedBy.Value, NumberStyles.Integer));

                lblAudit.Text = string.Format(GetLocalizedString("lblAudit"), user.DisplayName, updatedDate.Value);
            }

            if (injection.CustomProperties.Any(p => p.Name == InjectionInfoMembers.InjectionTypeField))
            {
                var intType = int.Parse(
                    injection.CustomProperties.FirstOrDefault(p => p.Name == InjectionInfoMembers.InjectionTypeField)
                    .Value);

                radType.SelectedIndex = intType;
            }
            else
            {
                // the default for existing injections is 1 because JS/CSS wasn't an option in the past
                radType.SelectedIndex = 1;
            }

            ToggleType();
        }
        private void PopulateInjectionForSave(ref InjectionInfo injection)
        {
            var security = new PortalSecurity();

            injection.InjectContent = Server.HtmlEncode(txtContent.Text);
            injection.InjectName    = security.InputFilter(txtName.Text, PortalSecurity.FilterFlag.NoMarkup);
            injection.InjectTop     = radInject.Items.FindByText(GetLocalizedString("radInject.0.Text")).Selected;
            injection.IsEnabled     = chkEnabled.Checked;
            injection.ModuleId      = ModuleId;

            if (injection.CustomProperties.Any(p => p.Name == InjectionInfoMembers.InjectionTypeField))
            {
                // update the existing injection type
                injection.CustomProperties.FirstOrDefault(p => p.Name == InjectionInfoMembers.InjectionTypeField)
                .Value = radType.SelectedIndex.ToString();
            }
            else
            {
                // create new injection type
                injection.CustomProperties.Add(new CustomPropertyInfo()
                {
                    Name  = InjectionInfoMembers.InjectionTypeField,
                    Value = radType.SelectedIndex.ToString()
                });
            }

            // CRM PRIORITY LEVEL
            var priorityLevel = ParsePriotityLevel(security);

            if (injection.CustomProperties.Any(p => p.Name == InjectionInfoMembers.CrmPriorityField))
            {
                // update existing CRM/CDF priority level
                injection.CustomProperties.FirstOrDefault(p => p.Name == InjectionInfoMembers.CrmPriorityField)
                .Value = priorityLevel.ToString();
            }
            else
            {
                // create new CRM/CDF priority level
                injection.CustomProperties.Add(new CustomPropertyInfo()
                {
                    Name  = InjectionInfoMembers.CrmPriorityField,
                    Value = priorityLevel.ToString()
                });
            }

            // CRM PAGE PROVIDER
            var provider = ddlCrmProvider.SelectedIndex;

            if (injection.CustomProperties.Any(p => p.Name == InjectionInfoMembers.CrmProviderField))
            {
                // update existing CRM/CDF provider
                injection.CustomProperties.FirstOrDefault(p => p.Name == InjectionInfoMembers.CrmProviderField).Value = provider.ToString();
            }
            else
            {
                // create new CRM/CDF provider
                injection.CustomProperties.Add(new CustomPropertyInfo()
                {
                    Name  = InjectionInfoMembers.CrmProviderField,
                    Value = provider.ToString()
                });
            }

            if (injection.CustomProperties.Any(p => p.Name == InjectionInfoMembers.CrmPriorityField))
            {
                injection.CustomProperties.FirstOrDefault(p => p.Name == InjectionInfoMembers.CrmPriorityField)
                .Value = security.InputFilter(txtCrmPriority.Text.Trim(), PortalSecurity.FilterFlag.NoMarkup);
            }
            else
            {
                injection.CustomProperties.Add(new CustomPropertyInfo()
                {
                    Name  = InjectionInfoMembers.CrmPriorityField,
                    Value = security.InputFilter(txtCrmPriority.Text.Trim(), PortalSecurity.FilterFlag.NoMarkup)
                });
            }

            if (injection.CustomProperties.Any(p => p.Name == InjectionInfoMembers.LastUpdatedByField))
            {
                // update the existing auditing fields
                injection.CustomProperties.FirstOrDefault(p => p.Name == InjectionInfoMembers.LastUpdatedByField)
                .Value = UserInfo.UserID.ToString();
                injection.CustomProperties.FirstOrDefault(p => p.Name == InjectionInfoMembers.LastUpdatedDateField)
                .Value = DateTime.UtcNow.ToString();
            }
            else
            {
                // adding new audting fields
                injection.CustomProperties.Add(new CustomPropertyInfo()
                {
                    Name  = InjectionInfoMembers.LastUpdatedByField,
                    Value = UserInfo.UserID.ToString()
                });

                injection.CustomProperties.Add(new CustomPropertyInfo()
                {
                    Name  = InjectionInfoMembers.LastUpdatedDateField,
                    Value = DateTime.UtcNow.ToString()
                });
            }
        }
 public void UpdateInjectionContent(InjectionInfo objInjection)
 {
     DataProvider.Instance().UpdateInjectionContent(objInjection.InjectionId, objInjection.ModuleId, objInjection.InjectTop, objInjection.InjectName, objInjection.InjectContent, objInjection.IsEnabled, objInjection.OrderShown, objInjection.CustomProperties.ToJson());
 }
        private static bool IsHtmlInjectionType(InjectionInfo injection)
        {
            if (injection.CustomProperties.Any(p => p.Name == InjectionInfoMembers.InjectionTypeField))
            {
                return
                    injection.CustomProperties.FirstOrDefault(p => p.Name == InjectionInfoMembers.InjectionTypeField)
                        .Value == "1";
            }

            return true;
        }
 public InjectionInfo GetInjectionContent(int InjectionContentId)
 {
     InjectionInfo objInj = new InjectionInfo();
     objInj.Fill(DataProvider.Instance().GetInjectionContent(InjectionContentId));
     return objInj;
 }
예제 #21
0
 public void UpdateInjectionContent(InjectionInfo objInjection)
 {
     DataProvider.Instance().UpdateInjectionContent(objInjection.InjectionId, objInjection.ModuleId, objInjection.InjectTop, objInjection.InjectName, objInjection.InjectContent, objInjection.IsEnabled, objInjection.OrderShown, objInjection.CustomProperties.ToJson());
 }
        public static InjectionType GetInjectionType(InjectionInfo injection)
        {
            Requires.NotNull("injection", injection);

            var isHtmlType = IsHtmlInjectionType(injection);

            if (isHtmlType && injection.InjectTop)
            {
                return InjectionType.HtmlTop;
            }
            else if (isHtmlType && !injection.InjectTop)
            {
                return InjectionType.HtmlBottom;
            }

            if (injection.InjectContent.EndsWith(".js"))
            {
                return InjectionType.JavaScript;
            }

            if (Regex.IsMatch(injection.InjectContent, CSS_PATTERN, RegexOptions.IgnoreCase))
            {
                return InjectionType.CSS;
            }

            throw new ArgumentOutOfRangeException("InjectionType", "InjectionType parameters do not match a known injection type.");
        }
        private void PopulateInjectionForSave(ref InjectionInfo injection)
        {
            var security = new PortalSecurity();

            injection.InjectContent = Server.HtmlEncode(txtContent.Text);
            injection.InjectName = security.InputFilter(txtName.Text, PortalSecurity.FilterFlag.NoMarkup);
            injection.InjectTop = radInject.Items.FindByText(GetLocalizedString("radInject.0.Text")).Selected;
            injection.IsEnabled = chkEnabled.Checked;
            injection.ModuleId = ModuleId;

            if (injection.CustomProperties.Any(p => p.Name == InjectionInfoMembers.InjectionTypeField))
            {
                // update the existing injection type
                injection.CustomProperties.FirstOrDefault(p => p.Name == InjectionInfoMembers.InjectionTypeField)
                    .Value = radType.SelectedIndex.ToString();
            }
            else
            {
                // create new injection type
                injection.CustomProperties.Add(new CustomPropertyInfo()
                {
                    Name = InjectionInfoMembers.InjectionTypeField,
                    Value = radType.SelectedIndex.ToString()
                });
            }

            // CRM PRIORITY LEVEL
            var priorityLevel = ParsePriotityLevel(security);
            if (injection.CustomProperties.Any(p => p.Name == InjectionInfoMembers.CrmPriorityField))
            {
                // update existing CRM/CDF priority level
                injection.CustomProperties.FirstOrDefault(p => p.Name == InjectionInfoMembers.CrmPriorityField)
                    .Value = priorityLevel.ToString();
            }
            else
            {
                // create new CRM/CDF priority level
                injection.CustomProperties.Add(new CustomPropertyInfo()
                {
                    Name = InjectionInfoMembers.CrmPriorityField,
                    Value = priorityLevel.ToString()
                });
            }

            // CRM PAGE PROVIDER
            var provider = ddlCrmProvider.SelectedIndex;
            if (injection.CustomProperties.Any(p => p.Name == InjectionInfoMembers.CrmProviderField))
            {
                // update existing CRM/CDF provider
                injection.CustomProperties.FirstOrDefault(p => p.Name == InjectionInfoMembers.CrmProviderField).Value = provider.ToString();
            }
            else
            {
                // create new CRM/CDF provider
                injection.CustomProperties.Add(new CustomPropertyInfo()
                {
                    Name = InjectionInfoMembers.CrmProviderField,
                    Value = provider.ToString()
                });
            }

            if (injection.CustomProperties.Any(p => p.Name == InjectionInfoMembers.CrmPriorityField))
            {
                injection.CustomProperties.FirstOrDefault(p => p.Name == InjectionInfoMembers.CrmPriorityField)
                    .Value = security.InputFilter(txtCrmPriority.Text.Trim(), PortalSecurity.FilterFlag.NoMarkup);
            }
            else
            {
                injection.CustomProperties.Add(new CustomPropertyInfo()
                {
                    Name = InjectionInfoMembers.CrmPriorityField,
                    Value = security.InputFilter(txtCrmPriority.Text.Trim(), PortalSecurity.FilterFlag.NoMarkup)
                });
            }

            if (injection.CustomProperties.Any(p => p.Name == InjectionInfoMembers.LastUpdatedByField))
            {
                // update the existing auditing fields
                injection.CustomProperties.FirstOrDefault(p => p.Name == InjectionInfoMembers.LastUpdatedByField)
                    .Value = UserInfo.UserID.ToString();
                injection.CustomProperties.FirstOrDefault(p => p.Name == InjectionInfoMembers.LastUpdatedDateField)
                    .Value = DateTime.UtcNow.ToString();
            }
            else
            {
                // adding new audting fields
                injection.CustomProperties.Add(new CustomPropertyInfo()
                {
                    Name = InjectionInfoMembers.LastUpdatedByField,
                    Value = UserInfo.UserID.ToString()
                });

                injection.CustomProperties.Add(new CustomPropertyInfo()
                {
                    Name = InjectionInfoMembers.LastUpdatedDateField,
                    Value = DateTime.UtcNow.ToString()
                });
            }
        }
        public static string GetCrmProvider(InjectionInfo injection)
        {
            Requires.NotNull("injection", injection);
            Requires.NotNull("injection.CustomProperties", injection.CustomProperties);

            if (!injection.CustomProperties.Any(p => p.Name == InjectionInfoMembers.CrmProviderField)) return string.Empty;

            var provider = injection.CustomProperties.FirstOrDefault(p => p.Name == InjectionInfoMembers.CrmProviderField).Value;

            return GetCrmProvider(provider);
        }
예제 #25
0
 public int AddInjectionContent(InjectionInfo objInjection)
 {
     return(Convert.ToInt32(DataProvider.Instance().AddInjectionContent(objInjection.ModuleId, objInjection.InjectTop, objInjection.InjectName, objInjection.InjectContent, objInjection.IsEnabled, objInjection.OrderShown, objInjection.CustomProperties.ToJson())));
 }
예제 #26
0
 override public object Create(InjectionInfo context)
 {
     return(2);
 }
        private void BindForm(int ItemId)
        {
            var ctlModule = new InjectionController();
            var injection = new InjectionInfo();

            injection = ctlModule.GetInjectionContent(ItemId);

            txtName.Text = injection.InjectName;
            txtContent.Text = Server.HtmlDecode(injection.InjectContent);
            radInject.ClearSelection();

            if (injection.InjectTop)
            {
                radInject.Items.FindByText(GetLocalizedString("radInject.0.Text")).Selected = true;
            }
            else
            {
                radInject.Items.FindByText(GetLocalizedString("radInject.1.Text")).Selected = true;
            }

            chkEnabled.Checked = injection.IsEnabled;
            hidInjectionId.Value = injection.InjectionId.ToString();
            cvName.Enabled = false;

            cmdDelete.Visible = !string.IsNullOrEmpty(hidInjectionId.Value);

            if (injection.CustomProperties.Any(p => p.Name == InjectionInfoMembers.CrmPriorityField))
            {
                var priorityLevel = injection.CustomProperties.FirstOrDefault(p => p.Name == InjectionInfoMembers.CrmPriorityField).Value;
                txtCrmPriority.Text = (priorityLevel == "-1") ? string.Empty : priorityLevel;
            }

            if (injection.CustomProperties.Any(p => p.Name == InjectionInfoMembers.CrmProviderField))
            {
                var provider = injection.CustomProperties.FirstOrDefault(p => p.Name == InjectionInfoMembers.CrmProviderField).Value;
                ddlCrmProvider.ClearSelection();
                ddlCrmProvider.SelectedIndex = int.Parse(provider);
            }

            if (injection.CustomProperties.Any(p => p.Name == InjectionInfoMembers.LastUpdatedByField))
            {
                var updatedBy = injection.CustomProperties.FirstOrDefault(p => p.Name == InjectionInfoMembers.LastUpdatedByField);
                var updatedDate = injection.CustomProperties.FirstOrDefault(p => p.Name == InjectionInfoMembers.LastUpdatedDateField);

                var user = UserController.GetUserById(PortalSettings.PortalId, int.Parse(updatedBy.Value, NumberStyles.Integer));

                lblAudit.Text = string.Format(GetLocalizedString("lblAudit"), user.DisplayName, updatedDate.Value);
            }

            if (injection.CustomProperties.Any(p => p.Name == InjectionInfoMembers.InjectionTypeField))
            {
                var intType =int.Parse(
                    injection.CustomProperties.FirstOrDefault(p => p.Name == InjectionInfoMembers.InjectionTypeField)
                        .Value);

                radType.SelectedIndex = intType;
            }
            else
            {
                // the default for existing injections is 1 because JS/CSS wasn't an option in the past
                radType.SelectedIndex = 1;
            }

            ToggleType();
        }
 public int AddInjectionContent(InjectionInfo objInjection)
 {
     return Convert.ToInt32(DataProvider.Instance().AddInjectionContent(objInjection.ModuleId, objInjection.InjectTop, objInjection.InjectName, objInjection.InjectContent, objInjection.IsEnabled, objInjection.OrderShown, objInjection.CustomProperties.ToJson()));
 }