private static List <TemplateBlock> ToSmsTemplatesBlockModel(TableBody table)
        {
            return(table.Rows.Select(x => {
                var p = x.Elements[5].SafeTrim();

                var res = new TemplateBlock
                {
                    TriggerName = x.Elements[x.Elements.Count - 2], //Название триггера всегда предпоследнее
                    TriggerGroupName = x.Elements.Last(),           //Название группы триггеров всегда последнее
                    TemplateBody = x.Elements[3],
                    TemplateBodyTranslation = x.Elements[4],
                    TriggerDescription = x.Elements[1],
                    Type = InteractionType.Sms,
                    MessageType = MessageType.Service
                };

                if (p == "любое")
                {
                    res.AnyTimeAllowed = true;
                }
                else
                {
                    res.AnyTimeAllowed = false;
                    res.AllowedFromHour = 6;
                    res.AllowedToHour = 23;
                }


                return res;
            }).Select(x => TemplateBlock.Process(x)).ToList());
        }
Beispiel #2
0
        protected override HtmlElement CreateDOMElementForDisplayMode(string displayMode)
        {
            switch (displayMode)
            {
            case "Menu":
                if (Root.TextDirection == Direction.RTL)
                {
                    _colorTable.Dir = "rtl";
                }
                else
                {
                    _colorTable.Dir = "ltr";
                }

                _colorTable.ClassName = "ms-cui-smenu-inner";
                _colorTable.SetAttribute("cellSpacing", "0");
                _colorTable.SetAttribute("cellPadding", "0");
                _colorTable.SetAttribute("mscui:controltype", ControlType);

                TableBody colorTableBody = new TableBody();
                AddColorCells(colorTableBody, _colors);
                _colorTable.AppendChild(colorTableBody);

                return(_colorTable);

            default:
                EnsureValidDisplayMode(displayMode);
                break;
            }
            return(null);
        }
Beispiel #3
0
        public void Test_Table_Normal()
        {
            var tbody = new TableBody()
                        .AddRow(new TableRow()
                                .AddCell((TableCell) new TableCell().AddContent("A11"))
                                .AddCell((TableCell) new TableCell().AddContent("B11")))
                        .AddRow(new TableRow()
                                .AddCell((TableCell) new TableCell().AddContent("A21"))
                                .AddCell((TableCell) new TableCell().AddContent("B21")));
            var tfoot = new TableFooter()
                        .AddRow(new TableRow()
                                .AddCell((TableCell) new TableCell().AddContent("F1"))
                                .AddCell((TableCell) new TableCell().AddContent("F2")));
            var thead = new TableHeader()
                        .AddRow(new TableRow()
                                .AddCell((TableHeaderCell) new TableHeaderCell().AddContent("B02"))
                                .AddCell((TableHeaderCell) new TableHeaderCell().AddContent("B01")));

            var table = new Table()
            {
                StyleValue   = TableStyles.Bordered,
                CaptionValue = (TableCaption) new TableCaption().AddContent("Hello"),
                HeaderValue  = (TableHeader)thead,
                FooterValue  = (TableFooter)tfoot
            };

            using (table.BeginContent(writer, contextMock.Object))
            {
                tbody.WriteTo(writer, contextMock.Object);
            }

            Assert.Equal(
                "<table class=\"table table-bordered\"><caption>Hello</caption><thead><tr><th>B02</th><th>B01</th></tr></thead><tbody><tr><td>A11</td><td>B11</td></tr><tr><td>A21</td><td>B21</td></tr></tbody><tfoot><tr><td>F1</td><td>F2</td></tr></tfoot></table>",
                writer.ToString());
        }
Beispiel #4
0
        private static TableBody ParseTableBody(
            XElement tableBodyTag,
            BaseStyle tablestyle,
            IDictionary <string, BaseStyle> classes)
        {
            var       attrClass = tableBodyTag.Attributes("class").FirstOrDefault();
            BaseStyle tbodyStyle;

            if (attrClass != null)
            {
                var tbodyClasses = GetStylesByClasses(classes, attrClass);
                tbodyStyle = StyleFactory.MergeStyles(tablestyle, tbodyClasses);
            }
            else
            {
                tbodyStyle = tablestyle;
            }

            var rows = tableBodyTag.Elements("tr").Select(tr => ParseBodyRow(tr, tbodyStyle, classes));

            var tbody = new TableBody
            {
                Style = tbodyStyle,
                Rows  = rows.ToArray()
            };

            return(tbody);
        }
Beispiel #5
0
        public HtmlTable(string htmlStr)
        {
            _htmlStr = htmlStr.Replace("\r", "").Replace("\n", "");
            StringFinder sf = new StringFinder(_htmlStr);

            if (sf.FindNext("<thead") != -1)
            {
                TableHead = new TableHead();
                sf.FindNext("</thead>", false);
                string ori = sf.Cut();
                SetRows(TableHead, ori, "tr");
            }

            if (sf.FindNext("<tbody") != -1)
            {
                TableBody = new TableBody();
                sf.FindNext("</tbody>");
                string ori = sf.Cut();
                SetRows(TableBody, ori, "tr");
            }

            if (sf.FindNext("<tfoot") != -1)
            {
                TableFoot = new TableFoot();
                sf.FindNext("</tfoot>");
                string ori = sf.Cut();
                SetRows(TableFoot, ori, "tr");
            }
        }
Beispiel #6
0
        private void EnsureTableBlock()
        {
            if (Current.Position == TablePosition.InTbody ||
                Current.Position == TablePosition.InTfoot ||
                Current.Position == TablePosition.InThead)
            {
                // We are already in a table block
                return;
            }

            if (Current.Position == TablePosition.InTable)
            {
                TableBody tbody = new TableBody(null, "tbody", null, m_Parser.Document, false, NodePosition.ReadOnly);

                AddToParent(m_TableNode, tbody);
                EnterTableInnerBlock(tbody);
            }
            else if (Current.Position == TablePosition.InTableRow)
            {
                Debug.Assert(m_Parser.CurrentNodeStack.Count > 2);

                HtmlNode currCell = m_Parser.CurrentNodeStack.Pop();
                if (currCell == null ||
                    "tr" != currCell.Name)
                {
                    // We shouldn't be here. Something is wrong
                    Debug.Assert(false);
                    throw new InvalidOperationException("Cannot ensure a table block because the current state is invalid.");
                }

                m_Parser.CurrentNode = m_Parser.CurrentNodeStack.Peek();


                Debug.Assert(m_Parser.CurrentNode != null);

                if (m_Parser.CurrentNode == null ||
                    "tbody" != m_Parser.CurrentNode.Name ||
                    "thead" != m_Parser.CurrentNode.Name ||
                    "tfoot" != m_Parser.CurrentNode.Name)
                {
                    // We shouldn't be here. Something is wrong
                    Debug.Assert(false);
                    throw new InvalidOperationException("Cannot ensure a table block because the current state is invalid.");
                }
                else
                {
                    EnterTableInnerBlock(m_Parser.CurrentNode);
                }
            }
            else if (Current.Position == TablePosition.InTableCell)
            {
                // TODO: just exit the current cell and row?? Test with <table><tr><td> a <tr> b <td> c </td> d </tr> c </td></tr></table>
            }
            else
            {
                // We shouldn't be here. Something is wrong
                Debug.Assert(false);
                throw new InvalidOperationException("Cannot ensure a table row because the current state is invalid.");
            }
        }
Beispiel #7
0
 private void Initialize(string name, string href, bool autoGenerateColumns, bool hasFooter,
                         IEnumerable <int> pageSizes, GridTheme theme)
 {
     if (theme == null)
     {
         theme = DefaulTheme;
     }
     Theme = theme;
     Class = Theme.Table;
     Id    = name;
     Href  = href;
     AutoGenerateColumns = autoGenerateColumns;
     Header = new TableHeader();
     Body   = new TableBody();
     if (hasFooter)
     {
         Footer = new TableFooter();
     }
     DefaultText = "No data found.";
     PageDisplay = "page {0} of {1}";
     if (pageSizes == null)
     {
         pageSizes = new List <int> {
             10, 20, 50
         };
     }
     _pageSizes = pageSizes;
     InitColumns();
     InitCommands();
     InitBody();
 }
Beispiel #8
0
        internal override void RefreshInternal()
        {
            EnsureDOMElementAndEmpty();
            TableBody tbody = new TableBody();

            ElementInternal.AppendChild(tbody);
            AppendChildrenToElement(tbody);
        }
        private static List <TemplateBlock> GetTemplatesFromFile(string filePath, InteractionType interactionType)
        {
            var data = TableBody.GetTableBodyFromJsonFileSchema(filePath);

            var keys = interactionType == InteractionType.Sms? data.Rows.GroupBy(x => x.Elements[5]).Select(x => x.Key).ToList() : null;

            return(TemplatesBlockExtensions.ToTemplatesBlockModel(data, interactionType));
        }
Beispiel #10
0
        protected override void ReleaseEventHandlers()
        {
            TableBody tBody = (TableBody)_colorTable.TBodies[0];

            foreach (TableRow tRow in tBody.Rows)
            {
                foreach (TableCell tCell in tRow.Cells)
                {
                    Anchor link = (Anchor)tCell.FirstChild;
                    link.Focus     -= OnCellFocus;
                    link.MouseOver -= OnCellHover;
                    link.MouseOut  -= OnCellBlur;
                    link.Click     -= OnCellClick;
                }
            }
        }
Beispiel #11
0
        public static void GenerateSchema(string directory)
        {
            var data = TableBody.GetTableBodyFromJsonFileSchema($"JsonSchemas/Masks/0.json");

            var masks = data.Rows.Select(x => new EccMaskModel
            {
                Mask                = Unwrap(x.Elements[TemplateNameIndex]),
                Description         = x.Elements[2],
                EnglishDescription  = x.Elements[3],
                SpanishDescription  = x.Elements[4],
                DefaultValue        = x.Elements[DefaultValueIndex],
                ShowInUserInterface = x.Elements[7].Replace("\n", string.Empty) == "+"
            }).Select(x => EccMaskModel.Process(x)).ToList();

            JsonSchemaToFileWriter.SaveSchemaToFile(masks, FilePath(directory));
        }
        private static List <TemplateBlock> ToEmailTemplatesBlockModel(TableBody table)
        {
            return(table.Rows.Select(x => new TemplateBlock
            {
                TriggerName = x.Elements[x.Elements.Count - 2], //Название триггера всегда предпоследнее
                TriggerGroupName = x.Elements.Last(),           //Название группы триггеров всегда последнее
                Header = x.Elements[3],
                HeaderTranslation = x.Elements[4],
                TemplateBody = x.Elements[5],
                TemplateBodyTranslation = x.Elements[6],
                TriggerDescription = x.Elements[1],
                Type = InteractionType.Email,

                AnyTimeAllowed = true, //Все Email можно отправлять когда захочется
                AllowedFromHour = null,
                AllowedToHour = null,
            }).Select(x => TemplateBlock.Process(x)).ToList());
        }
Beispiel #13
0
        public IActionResult GetAvailableTables(TableBody body)
        {
            var request = new GetAvailableTableReservationsRequest
            {
                PartySize       = body.PartySize,
                ReservationDate = body.ReservationDate,
                TimeSlot        = body.TimeSlot
            };

            var response = _tableService.GetAvailableTableReservations(request);

            if (response.IsSuccessful)
            {
                return(Ok(response.Reservations));
            }
            else
            {
                return(BadRequest());
            }
        }
Beispiel #14
0
        protected override HtmlElement CreateDOMElementForDisplayMode(string displayMode)
        {
            switch (displayMode)
            {
            case "Menu":
                _elmDefault = new Table();
                _elmDefault.SetAttribute("mscui:controltype", ControlType);

                _elmDefaultTbody           = new TableBody();
                _elmDefaultTbody.ClassName = "ms-cui-it";
                _elmDefault.SetAttribute("cellspacing", "0");
                _elmDefault.SetAttribute("cellpadding", "0");
                _elmDefaultTbody.SetAttribute("cellspacing", "0");
                _elmDefaultTbody.SetAttribute("cellpadding", "0");

                _elmDefault.MouseOut += OnControlMouseOut;

                EnsureDivArrays();

                TableRow  elmRow;
                TableCell elmCell;
                Anchor    elmCellA;
                Div       elmDiv;
                Div       elmDivOuter;
                int       idx = 0;
                for (int i = 0; i < 10; i++)
                {
                    elmRow = new TableRow();
                    _elmDefaultTbody.AppendChild(elmRow);
                    for (int j = 0; j < 10; j++)
                    {
                        elmCell = new TableCell();
                        elmCell.Style.Padding = "0px";
                        elmRow.AppendChild(elmCell);

                        elmCellA = new Anchor();

                        Utility.NoOpLink(elmCellA);
                        Utility.SetAriaTooltipProperties(Properties, elmCellA);

                        elmCellA.Focus  += OnCellFocus;
                        elmDiv           = new Div();
                        elmDiv.ClassName = "ms-cui-it-inactiveCell";

                        elmDivOuter           = new Div();
                        elmDivOuter.Id        = this.Id + "-" + idx;
                        elmDivOuter.ClassName = "ms-cui-it-inactiveCellOuter";

                        elmCell.MouseOver += OnCellHover;
                        elmCell.Click     += OnCellClick;
                        elmCell.AppendChild(elmDivOuter);
                        elmDivOuter.AppendChild(elmDiv);
                        elmDiv.AppendChild(elmCellA);

                        _innerDivs[idx] = elmDiv;
                        _outerDivs[idx] = elmDivOuter;
                        idx++;
                    }
                }

                _elmDefault.AppendChild(_elmDefaultTbody);
                return(_elmDefault);

            default:
                EnsureValidDisplayMode(displayMode);
                break;
            }
            return(null);
        }
Beispiel #15
0
        private void EnsureTableRowIfNeeded()
        {
            if (Current.Position == TablePosition.InTableRow)
            {
                // We are already in a row
                return;
            }

            if (Current.Position == TablePosition.InTable)
            {
                TableBody tbody = new TableBody(null, "tbody", null, m_Parser.Document, false, NodePosition.ReadOnly);

                AddToParent(m_TableNode, tbody);
                EnterTableInnerBlock(tbody);
            }

            if (Current.Position == TablePosition.InTbody)
            {
                TableRow tr = new TableRow(null, "tr", null, m_Parser.Document, false, NodePosition.ReadOnly);

                AddToParent(m_CurrTableBlockNode, tr);
                EnterTableRow(tr);
            }
            else if (
                Current.Position == TablePosition.InTfoot ||
                Current.Position == TablePosition.InThead)
            {
                // NOTE: Firefox doesn't add TR for TDs inside THEAD and TFOOT
            }
            else if (Current.Position == TablePosition.InTableCell)
            {
                Debug.Assert(m_Parser.CurrentNodeStack.Count > 3);

                HtmlNode currCell = m_Parser.CurrentNodeStack.Pop();
                if (currCell == null ||
                    "td" != currCell.Name)
                {
                    // We shouldn't be here. Something is wrong
                    Debug.Assert(false);
                    throw new InvalidOperationException("Cannot ensure a table row because the current state is invalid.");
                }

                m_Parser.CurrentNode = m_Parser.CurrentNodeStack.Peek();

                Debug.Assert(m_Parser.CurrentNode != null);

                if (m_Parser.CurrentNode == null ||
                    "tr" != m_Parser.CurrentNode.Name)
                {
                    // We shouldn't be here. Something is wrong
                    Debug.Assert(false);
                    throw new InvalidOperationException("Cannot ensure a table row because the current state is invalid.");
                }
                else
                {
                    EnterTableRow(m_Parser.CurrentNode);
                }
            }
            else
            {
                // We shouldn't be here. Something is wrong
                Debug.Assert(false);
                throw new InvalidOperationException("Cannot ensure a table row because the current state is invalid.");
            }
        }
Beispiel #16
0
 public Table()
 {
     Head   = new TableHead();
     Footer = new TableFooter();
     Body   = new TableBody();
 }
Beispiel #17
0
 public override TableBody VisitTableBody(TableBody tableBody)
 {
     tableBody = tableBodyDelegate?.Invoke(tableBody) ?? tableBody;
     return(base.VisitTableBody(tableBody));
 }
 /// <summary>
 /// Получение моделей из файлов
 /// </summary>
 /// <param name="filePath"></param>
 /// <param name="interactionType"></param>
 /// <returns></returns>
 public static List <DebtorTemplateBlock> GetTemplatesFromFile(string filePath, InteractionType interactionType)
 {
     return(TableBody.GetTableBodyFromJsonFileSchema(filePath).Rows
            .Select(x => ToDebtorTemplateBlock(x, interactionType)).ToList());
 }
Beispiel #19
0
 internal TableBodyBuilder(HtmlHelper <TModel> htmlHelper, TableBody tableBody)
     : base(htmlHelper, tableBody)
 {
 }
Beispiel #20
0
        private WatinControl CreateWatinControl(INativeElement htmlElem)
        {
            Element          watElem;
            WatinBaseControl watBaseTypeElem;
            int    watElemIndex = 0;
            int    sourceIdx    = htmlElem.GetElementSourceIndex();
            string getByTag     = htmlElem.TagName;

            switch (getByTag)
            {
            case "AREA":
                watElem         = new Area(docElement.DomContainer, htmlElem);
                watBaseTypeElem = new WatinBaseControl(this, WatinBaseTypes.Areas);
                IEnumerator <Area> areaEnum = docElement.Areas.GetEnumerator();

                while (areaEnum.MoveNext())
                {
                    if (areaEnum.Current.NativeElement.GetElementSourceIndex() == sourceIdx)
                    {
                        break;
                    }
                    watElemIndex++;
                }
                return(new WatinControl(watBaseTypeElem, watElem, watElemIndex));

            case "INPUT":
                string byType = htmlElem.GetAttributeValue("type");
                switch (byType)
                {
                case "submit":
                case "reset":
                case "button":
                    watElem         = new WatiN.Core.Button(docElement.DomContainer, htmlElem);
                    watBaseTypeElem = new WatinBaseControl(this, WatinBaseTypes.Buttons);
                    IEnumerator <WatiN.Core.Button> buttonEnum = docElement.Buttons.GetEnumerator();

                    while (buttonEnum.MoveNext())
                    {
                        if (buttonEnum.Current.NativeElement.GetElementSourceIndex() == sourceIdx)
                        {
                            break;
                        }
                        watElemIndex++;
                    }
                    return(new WatinControl(watBaseTypeElem, watElem, watElemIndex));

                case "checkbox":
                    watElem         = new WatiN.Core.CheckBox(docElement.DomContainer, htmlElem);
                    watBaseTypeElem = new WatinBaseControl(this, WatinBaseTypes.CheckBoxes);
                    IEnumerator <WatiN.Core.CheckBox> cbEnum = docElement.CheckBoxes.GetEnumerator();

                    while (cbEnum.MoveNext())
                    {
                        if (cbEnum.Current.NativeElement.GetElementSourceIndex() == sourceIdx)
                        {
                            break;
                        }
                        watElemIndex++;
                    }
                    return(new WatinControl(watBaseTypeElem, watElem, watElemIndex));

                case "file":
                    watElem         = new FileUpload(docElement.DomContainer, htmlElem);
                    watBaseTypeElem = new WatinBaseControl(this, WatinBaseTypes.FileUploads);
                    IEnumerator <FileUpload> fuEnum = docElement.FileUploads.GetEnumerator();

                    while (fuEnum.MoveNext())
                    {
                        if (fuEnum.Current.NativeElement.GetElementSourceIndex() == sourceIdx)
                        {
                            break;
                        }
                        watElemIndex++;
                    }
                    return(new WatinControl(watBaseTypeElem, watElem, watElemIndex));

                case "hidden":
                case "password":
                case "text":
                case "textarea":
                    watElem         = new TextField(docElement.DomContainer, htmlElem);
                    watBaseTypeElem = new WatinBaseControl(this, WatinBaseTypes.TextFields);
                    IEnumerator <TextField> tfEnum = docElement.TextFields.GetEnumerator();

                    while (tfEnum.MoveNext())
                    {
                        if (tfEnum.Current.NativeElement.GetElementSourceIndex() == sourceIdx)
                        {
                            break;
                        }
                        watElemIndex++;
                    }
                    return(new WatinControl(watBaseTypeElem, watElem, watElemIndex));

                case "radio":
                    watElem         = new WatiN.Core.RadioButton(docElement.DomContainer, htmlElem);
                    watBaseTypeElem = new WatinBaseControl(this, WatinBaseTypes.RadioButtons);
                    IEnumerator <WatiN.Core.RadioButton> rbEnum = docElement.RadioButtons.GetEnumerator();

                    while (rbEnum.MoveNext())
                    {
                        if (rbEnum.Current.NativeElement.GetElementSourceIndex() == sourceIdx)
                        {
                            break;
                        }
                        watElemIndex++;
                    }
                    return(new WatinControl(watBaseTypeElem, watElem, watElemIndex));
                }
                break;

            case "DIV":
                watElem         = new Div(docElement.DomContainer, htmlElem);
                watBaseTypeElem = new WatinBaseControl(this, WatinBaseTypes.Divs);
                IEnumerator <Div> divEnum = docElement.Divs.GetEnumerator();

                while (divEnum.MoveNext())
                {
                    if (divEnum.Current.NativeElement.GetElementSourceIndex() == sourceIdx)
                    {
                        break;
                    }
                    watElemIndex++;
                }
                return(new WatinControl(watBaseTypeElem, watElem, watElemIndex));

            case "FORM":
                watElem         = new WatiN.Core.Form(docElement.DomContainer, htmlElem);
                watBaseTypeElem = new WatinBaseControl(this, WatinBaseTypes.Forms);
                IEnumerator <WatiN.Core.Form> formEnum = docElement.Forms.GetEnumerator();

                while (formEnum.MoveNext())
                {
                    if (formEnum.Current.NativeElement.GetElementSourceIndex() == sourceIdx)
                    {
                        break;
                    }
                    watElemIndex++;
                }
                return(new WatinControl(watBaseTypeElem, watElem, watElemIndex));

            case "FRAME":
            case "IFRAME":
                //watFrame = new Frame(browser.DomContainer, htmlElem);
                //watBaseTypeElem = new WatinBaseControl(this, WatinBaseTypes.Forms);
                //IEnumerator<Form> formEnum = browser.Forms.GetEnumerator();

                //while (formEnum.MoveNext())
                //{
                //	  if (formEnum.Current.NativeElement.GetElementSourceIndex() == sourceIdx)
                //		  break;
                //	  watElemIndex++;
                //}
                //return new WatinControl(watBaseTypeElem, watElem, watElemIndex);
                break;

            case "IMG":
                watElem         = new Image(docElement.DomContainer, htmlElem);
                watBaseTypeElem = new WatinBaseControl(this, WatinBaseTypes.Images);
                IEnumerator <Image> imgEnum = docElement.Images.GetEnumerator();

                while (imgEnum.MoveNext())
                {
                    if (imgEnum.Current.NativeElement.GetElementSourceIndex() == sourceIdx)
                    {
                        break;
                    }
                    watElemIndex++;
                }
                return(new WatinControl(watBaseTypeElem, watElem, watElemIndex));

            case "LABLE":
                watElem         = new WatiN.Core.Label(docElement.DomContainer, htmlElem);
                watBaseTypeElem = new WatinBaseControl(this, WatinBaseTypes.Labels);
                IEnumerator <WatiN.Core.Label> lblEnum = docElement.Labels.GetEnumerator();

                while (lblEnum.MoveNext())
                {
                    if (lblEnum.Current.NativeElement.GetElementSourceIndex() == sourceIdx)
                    {
                        break;
                    }
                    watElemIndex++;
                }
                return(new WatinControl(watBaseTypeElem, watElem, watElemIndex));

            case "A":
                watElem         = new Link(docElement.DomContainer, htmlElem);
                watBaseTypeElem = new WatinBaseControl(this, WatinBaseTypes.Links);
                IEnumerator <Link> lnkEnum = docElement.Links.GetEnumerator();

                while (lnkEnum.MoveNext())
                {
                    if (lnkEnum.Current.NativeElement.GetElementSourceIndex() == sourceIdx)
                    {
                        break;
                    }
                    watElemIndex++;
                }
                return(new WatinControl(watBaseTypeElem, watElem, watElemIndex));

            case "P":
                watElem         = new Para(docElement.DomContainer, htmlElem);
                watBaseTypeElem = new WatinBaseControl(this, WatinBaseTypes.Paras);
                IEnumerator <Para> paraEnum = docElement.Paras.GetEnumerator();

                while (paraEnum.MoveNext())
                {
                    if (paraEnum.Current.NativeElement.GetElementSourceIndex() == sourceIdx)
                    {
                        break;
                    }
                    watElemIndex++;
                }
                return(new WatinControl(watBaseTypeElem, watElem, watElemIndex));

            case "SELECT":
                watElem         = new SelectList(docElement.DomContainer, htmlElem);
                watBaseTypeElem = new WatinBaseControl(this, WatinBaseTypes.SelectLists);
                IEnumerator <SelectList> slEnum = docElement.SelectLists.GetEnumerator();

                while (slEnum.MoveNext())
                {
                    if (slEnum.Current.NativeElement.GetElementSourceIndex() == sourceIdx)
                    {
                        break;
                    }
                    watElemIndex++;
                }
                return(new WatinControl(watBaseTypeElem, watElem, watElemIndex));

            case "SPAN":
                watElem         = new Span(docElement.DomContainer, htmlElem);
                watBaseTypeElem = new WatinBaseControl(this, WatinBaseTypes.Spans);
                IEnumerator <Span> spanEnum = docElement.Spans.GetEnumerator();

                while (spanEnum.MoveNext())
                {
                    if (spanEnum.Current.NativeElement.GetElementSourceIndex() == sourceIdx)
                    {
                        break;
                    }
                    watElemIndex++;
                }
                return(new WatinControl(watBaseTypeElem, watElem, watElemIndex));

            case "TBODY":
                watElem         = new TableBody(docElement.DomContainer, htmlElem);
                watBaseTypeElem = new WatinBaseControl(this, WatinBaseTypes.TableBodies);
                IEnumerator <TableBody> tbEnum = docElement.TableBodies.GetEnumerator();

                while (tbEnum.MoveNext())
                {
                    if (tbEnum.Current.NativeElement.GetElementSourceIndex() == sourceIdx)
                    {
                        break;
                    }
                    watElemIndex++;
                }
                return(new WatinControl(watBaseTypeElem, watElem, watElemIndex));

            case "TD":
                watElem         = new TableCell(docElement.DomContainer, htmlElem);
                watBaseTypeElem = new WatinBaseControl(this, WatinBaseTypes.TableCells);
                IEnumerator <TableCell> tdEnum = docElement.TableCells.GetEnumerator();

                while (tdEnum.MoveNext())
                {
                    if (tdEnum.Current.NativeElement.GetElementSourceIndex() == sourceIdx)
                    {
                        break;
                    }
                    watElemIndex++;
                }
                return(new WatinControl(watBaseTypeElem, watElem, watElemIndex));

            case "TR":
                watElem         = new TableRow(docElement.DomContainer, htmlElem);
                watBaseTypeElem = new WatinBaseControl(this, WatinBaseTypes.TableRows);
                IEnumerator <TableRow> trEnum = docElement.TableRows.GetEnumerator();

                while (trEnum.MoveNext())
                {
                    if (trEnum.Current.NativeElement.GetElementSourceIndex() == sourceIdx)
                    {
                        break;
                    }
                    watElemIndex++;
                }
                return(new WatinControl(watBaseTypeElem, watElem, watElemIndex));

            case "TABLE":
                watElem         = new Table(docElement.DomContainer, htmlElem);
                watBaseTypeElem = new WatinBaseControl(this, WatinBaseTypes.Tables);
                IEnumerator <Table> tableEnum = docElement.Tables.GetEnumerator();

                while (tableEnum.MoveNext())
                {
                    if (tableEnum.Current.NativeElement.GetElementSourceIndex() == sourceIdx)
                    {
                        break;
                    }
                    watElemIndex++;
                }
                return(new WatinControl(watBaseTypeElem, watElem, watElemIndex));

            case "TEXTAREA":
                watElem         = new TextField(docElement.DomContainer, htmlElem);
                watBaseTypeElem = new WatinBaseControl(this, WatinBaseTypes.TextFields);
                IEnumerator <TextField> taEnum = docElement.TextFields.GetEnumerator();

                while (taEnum.MoveNext())
                {
                    if (taEnum.Current.NativeElement.GetElementSourceIndex() == sourceIdx)
                    {
                        break;
                    }
                    watElemIndex++;
                }
                return(new WatinControl(watBaseTypeElem, watElem, watElemIndex));

            default:
                return(null);
            }

            return(null);
        }
        static StandardElementMapping()
        {
            foObjs = new Hashtable();

            // Declarations and Pagination and Layout Formatting Objects
            foObjs.Add("root", Root.GetMaker());
            foObjs.Add("declarations", Declarations.GetMaker());
            foObjs.Add("color-profile", ColorProfile.GetMaker());
            foObjs.Add("page-sequence", PageSequence.GetMaker());
            foObjs.Add("layout-master-set", LayoutMasterSet.GetMaker());
            foObjs.Add("page-sequence-master", PageSequenceMaster.GetMaker());
            foObjs.Add("single-page-master-reference", SinglePageMasterReference.GetMaker());
            foObjs.Add("repeatable-page-master-reference", RepeatablePageMasterReference.GetMaker());
            foObjs.Add("repeatable-page-master-alternatives", RepeatablePageMasterAlternatives.GetMaker());
            foObjs.Add("conditional-page-master-reference", ConditionalPageMasterReference.GetMaker());
            foObjs.Add("simple-page-master", SimplePageMaster.GetMaker());
            foObjs.Add("region-body", RegionBody.GetMaker());
            foObjs.Add("region-before", RegionBefore.GetMaker());
            foObjs.Add("region-after", RegionAfter.GetMaker());
            foObjs.Add("region-start", RegionStart.GetMaker());
            foObjs.Add("region-end", RegionEnd.GetMaker());
            foObjs.Add("flow", Flow.Flow.GetMaker());
            foObjs.Add("static-content", StaticContent.GetMaker());
            foObjs.Add("title", Title.GetMaker());

            // Block-level Formatting Objects
            foObjs.Add("block", Block.GetMaker());
            foObjs.Add("block-container", BlockContainer.GetMaker());

            // Inline-level Formatting Objects
            foObjs.Add("bidi-override", BidiOverride.GetMaker());
            foObjs.Add("character", Character.GetMaker());
            foObjs.Add("initial-property-set", InitialPropertySet.GetMaker());
            foObjs.Add("external-graphic", ExternalGraphic.GetMaker());
            foObjs.Add("instream-foreign-object", InstreamForeignObject.GetMaker());
            foObjs.Add("inline", Inline.GetMaker());
            foObjs.Add("inline-container", InlineContainer.GetMaker());
            foObjs.Add("leader", Leader.GetMaker());
            foObjs.Add("page-number", PageNumber.GetMaker());
            foObjs.Add("page-number-citation", PageNumberCitation.GetMaker());

            // Formatting Objects for Tables
            foObjs.Add("table-and-caption", TableAndCaption.GetMaker());
            foObjs.Add("table", Table.GetMaker());
            foObjs.Add("table-column", TableColumn.GetMaker());
            foObjs.Add("table-caption", TableCaption.GetMaker());
            foObjs.Add("table-header", TableHeader.GetMaker());
            foObjs.Add("table-footer", TableFooter.GetMaker());
            foObjs.Add("table-body", TableBody.GetMaker());
            foObjs.Add("table-row", TableRow.GetMaker());
            foObjs.Add("table-cell", TableCell.GetMaker());

            // Formatting Objects for Lists
            foObjs.Add("list-block", ListBlock.GetMaker());
            foObjs.Add("list-item", ListItem.GetMaker());
            foObjs.Add("list-item-body", ListItemBody.GetMaker());
            foObjs.Add("list-item-label", ListItemLabel.GetMaker());

            // Dynamic Effects: Link and Multi Formatting Objects
            foObjs.Add("basic-link", BasicLink.GetMaker());
            foObjs.Add("multi-switch", MultiSwitch.GetMaker());
            foObjs.Add("multi-case", MultiCase.GetMaker());
            foObjs.Add("multi-toggle", MultiToggle.GetMaker());
            foObjs.Add("multi-properties", MultiProperties.GetMaker());
            foObjs.Add("multi-property-set", MultiPropertySet.GetMaker());

            // Out-of-Line Formatting Objects
            foObjs.Add("float", Float.GetMaker());
            foObjs.Add("footnote", Footnote.GetMaker());
            foObjs.Add("footnote-body", FootnoteBody.GetMaker());

            // Other Formatting Objects
            foObjs.Add("wrapper", Wrapper.GetMaker());
            foObjs.Add("marker", Marker.GetMaker());
            foObjs.Add("retrieve-marker", RetrieveMarker.GetMaker());
        }
Beispiel #22
0
 public TableBody GetTableBodyFromJsonFileSchema()
 {
     return(TableBody.GetTableBodyFromJsonFileSchema($"JsonSchemas/Templates/{TemplateSchemaName}.json"));
 }
 public static List <TemplateBlock> ToTemplatesBlockModel(TableBody table, InteractionType interactionType)
 {
     return(interactionType == InteractionType.Sms? ToSmsTemplatesBlockModel(table) : ToEmailTemplatesBlockModel(table));
 }
Beispiel #24
0
 public override void Dispose()
 {
     base.Dispose();
     _elmDefault      = null;
     _elmDefaultTbody = null;
 }