public View Make(ViewDefinition definition, DAL.Models.DbSearchResponse ticketSet, View parentNode, Action<UI.View> viewAction) { var view = new UI.View() { ViewType = ViewType.TableBody, ParentNode = parentNode, Virtual = true }; view.Props = new Dictionary<string, object>() { { "TemplateId", definition.TemplateId } }; if (definition.LinkedFieldId.HasValue) view.Props.Add("LinkedFieldId", definition.LinkedFieldId); foreach (var ticket in ticketSet.Tickets) { var newTicketSet = ticketSet.ReduceToOneTicket(ticket); var childView = new TableRecordViewBehaviour(CurrentUser).Make(definition, newTicketSet, view, null); view.ChildViews.Add(childView); } return view; }
public UI.View Make(ViewDefinition definition, DbSearchResponse ticketSet, UI.View parentNode, Action <UI.View> viewAction) { var view = new UI.View() { ViewType = UI.ViewType.SectionsSettings, Virtual = true, ParentNode = parentNode }; view.Props.Add("DisplayName", RC.SECTION_SETTINGS_DISP_NAME); viewAction(view); return(view); }
public View Make(ViewDefinition definition, DAL.Models.DbSearchResponse ticketSet, View parentNode, Action <UI.View> viewAction) { var view = new UI.View() { ViewType = ViewType.TableHeader, ParentNode = parentNode, Virtual = true }; view.Controls = definition .Controls.Where(c => c.GridIndex >= 0).GroupBy(c => c.GridIndex).OrderBy(c => c.Key) .Select(c => new TableHeaderControlBehaviour(CurrentUser).Make(c.First(), ticketSet, view, null)) .ToList(); return(view); }
private void GetFlatListOfControls(UI.View view, ref List <UI.Control> controls) { if (view.Controls != null) { foreach (var control in view.Controls.Where(c => c.Props.ContainsKey("FieldId") && c.Props["FieldId"] != null)) { controls.Add(control); } } if (view.ChildViews != null) { // Использовать только незалинкованные View var childViews = view.ChildViews.Where(cv => !cv.Props.ContainsKey("LinkedFieldId") || cv.Props["LinkedFieldId"] == null); foreach (var childView in childViews) { GetFlatListOfControls(childView, ref controls); } } }
public View Make(ViewDefinition definition, DAL.Models.DbSearchResponse ticketSet, View parentNode, Action <UI.View> viewAction) { var view = new UI.View() { ViewType = ViewType.TableRecord, ParentNode = parentNode, Virtual = true }; view.Props.Add("GridIndex", 0); foreach (var controlGroup in definition.Controls.Where(c => c.GridIndex >= 0).GroupBy(c => c.GridIndex).OrderBy(c => c.Key)) { view.Props["GridIndex"] = controlGroup.Key; var childView = new TableCellViewBehaviour(CurrentUser).Make(definition, ticketSet, view, null); view.ChildViews.Add(childView); } view.Props.Remove("GridIndex"); return(view); }
public View Make(ViewDefinition definition, DAL.Models.DbSearchResponse ticketSet, View parentNode, Action <UI.View> viewAction) { var view = new UI.View() { ViewType = ViewType.TableCell, ParentNode = parentNode, Virtual = true }; var gridIndex = Convert.ToInt32(parentNode.Props["GridIndex"]); view.Props = new Dictionary <string, object>() { { "TemplateId", definition.TemplateId }, { "GridIndex", gridIndex } }; view.Controls = definition .Controls.Where(c => c.GridIndex >= 0 && c.GridIndex == gridIndex).OrderBy(c => c.OrderIndex) .Select(c => BehaviourSelector.ControlBehaviours[Mapper.Map <UI.ControlType>(c.ControlType)](CurrentUser).Make(c, ticketSet, view, null)) .ToList(); return(view); }
public UI.View Make(ViewDefinition definition, DAL.Models.DbSearchResponse ticketSet, View parentNode, Action <UI.View> viewAction) { var view = new UI.View() { ViewType = UI.ViewType.TableFooter, ParentNode = parentNode, Virtual = true }; if (ticketSet != null && ticketSet.Total > 0) { var nodeList = new NodeList(); Node specialNode = null; Node node = null; for (var i = 1; i <= ticketSet.NumberOfPages; i++) { var button = new ButtonPageNumberControlBehaviour(CurrentUser).Make(null, ticketSet, view, (b) => { b.Props.Add("DisplayName", i.ToString()); b.Props.Add("IsCurrent", i == ticketSet.PageNumber); }); var newNode = new Node(button); if (node == null) { node = newNode; nodeList.Head = node; nodeList.Tail = node; } else { newNode.Prev = node; node.Next = newNode; node = newNode; nodeList.Tail = node; } nodeList.Count++; if (i == ticketSet.PageNumber) { specialNode = node; } } var pageNumberButtons = new List <Node>(); node = nodeList.Head; var distanceToHead = 0; var distanceToTail = 0; while (node != null) { if (node == specialNode) { if (distanceToHead > 0) { pageNumberButtons.Add(nodeList.Head); if (distanceToHead > 1) { if (distanceToHead > 2) { if (distanceToHead > 3) { if (distanceToHead > 4) { pageNumberButtons.Add(new Node(new Control() { ControlType = ControlType.Label, Value = ".." })); } pageNumberButtons.Add(node.Prev.Prev.Prev); } pageNumberButtons.Add(node.Prev.Prev); } pageNumberButtons.Add(node.Prev); } } pageNumberButtons.Add(node); distanceToTail = nodeList.Count - 1 - distanceToHead; if (distanceToTail > 0) { pageNumberButtons.Add(node.Next); if (distanceToTail > 1) { pageNumberButtons.Add(node.Next.Next); if (distanceToTail > 2) { pageNumberButtons.Add(node.Next.Next.Next); if (distanceToTail > 3) { pageNumberButtons.Add(nodeList.Tail); if (distanceToTail > 4) { pageNumberButtons.Insert(pageNumberButtons.Count - 1, new Node(new Control() { ControlType = ControlType.Label, Value = ".." })); } } } } } } node = node.Next; distanceToHead++; } view.Controls = pageNumberButtons.Count > 1 ? pageNumberButtons.Select(n => n.Control).ToList() : new List <Control>(); } return(view); }