public void AppendToClass(IComponentFileCreator parentClass, AutoElementData appenderElement)
        {
            ElementSelectorData[] elements = appenderElement.InnerChildrens.Select(ConversionsUtils.ConvertToElementSelectorData)
                                             .ToArray();
            bool   ctorContainsDriver;
            string type;
            string selector = appenderElement.Selector;

            if (elements.Length > 0)
            {
                var elementAddin = _addinContainer.GetAddin(elements[0].Type);
                type               = elementAddin != null ? elementAddin.Type : elements[0].Name;
                selector           = elements[0].FullSelector;
                ctorContainsDriver = _addinContainer.GetAddin(type)?.CtorContainsDriver ?? false;
            }
            else
            {
                type = "string";
                ctorContainsDriver = false;
            }
            string        name  = SelectorUtils.TryGetClassOrPropNameFromSelector(appenderElement.Selector, out name) ? name : type + "List";
            ListItemAddin addin = new ListItemAddin
            {
                Type = type,
                CtorContainsDriver = ctorContainsDriver
            };

            parentClass.AddProperty(parentClass.PropertyGenerator.CreateProperty(addin, name, selector));
        }
        private string[] GetUsings(IEnumerable <ElementSelectorData> elements)
        {
            IEnumerable <string> usings = elements.Where(ExistingTypes)
                                          .Aggregate <ElementSelectorData, IEnumerable <string> >(BaseUsings,
                                                                                                  (current, element) => current.Concat(Container.GetAddin(element.Type).RequiredUsings));

            return(usings.ToArray());
        }
        public void AppendToClass(IComponentFileCreator parentClass, AutoElementData appenderElement)
        {
            ElementSelectorData element = ConversionsUtils.ConvertToElementSelectorData(appenderElement);
            KeyValuePair <Property, Property> propertyWithPrivateWebElement =
                parentClass.PropertyGenerator.CreatePropertyWithPrivateWebElement(
                    _addinContainer.GetAddin(element.Type) ?? DefaultAddin.Create(element.Type), element.Name,
                    element.FullSelector);
            string privateWebElement = propertyWithPrivateWebElement.Key.Name;

            parentClass.AddProperty(GetProperty(privateWebElement));
        }