示例#1
0
        public UI.Control Make(ControlDefinition definition, DbSearchResponse ticketSet, UI.Instance parentNode, Action <UI.Control> controlAction)
        {
            var control = new UI.Control
            {
                ControlType = Mapper.Map <UI.ControlType>(definition.ControlType),
                ParentNode  = parentNode
            };

            var ticket = ticketSet.Tickets.FirstOrDefault();

            var dalControl = (DAL.Models.Control)definition.Entity;

            control.Events = definition
                             .Events
                             .Select(e => BehaviourSelector.EventBehaviours[Mapper.Map <UI.EventType>(e.EventType)](CurrentUser).Make(e, ticketSet, control))
                             .ToList();

            control.Props.Add("DisplayName", definition.DisplayName);
            control.Props.Add("Order", definition.OrderIndex);
            control.Props.Add("Width", definition.Width);
            control.Props.Add("Style", Mapper.Map <UI.StyleDefinition>(((DAL.Models.Control)definition.Entity).Style));

            if (dalControl.Field != null)
            {
                control.Props.Add("FieldId", dalControl.Field.Id);
            }

            if (ticket != null)
            {
                control.DocId = Convert.ToInt32(ticket[dalControl.Field.TemplateId, "Id"]);

                if (dalControl.Field.FieldType.In(DAL.Models.FieldType.Dictionary))
                {
                    control.Props.Add("DictionaryId", dalControl.Field.Dictionary.Id);
                    control.Props.Add("DictionaryName", dalControl.Field.Dictionary.Name);
                    control.Props.Add("DictionaryType", Enum.GetName(typeof(DAL.Models.DictionaryType), dalControl.Field.Dictionary.DictionaryType));

                    var options = DbDictionaryCache.GetDictionaryRecords(dalControl.Field.Dictionary);

                    var values = DbDictionaryCache.GetValues(dalControl.Field.Dictionary, dalControl.Field.Id, control.DocId.Value);
                    control.Value = string.Join(", ", values.Select(v => options[v]));
                }
                else if (dalControl.Field.FieldType == DAL.Models.FieldType.Flag)
                {
                    control.Value = (ticket[dalControl.Field] == null) ? string.Empty :
                                    (bool)ticket[dalControl.Field] ? $"{definition.DisplayName}" : string.Empty;
                }
                else if (dalControl.Field.FieldType == DAL.Models.FieldType.DateTime)
                {
                    control.Value = (ticket[dalControl.Field] != null) ?
                                    ((DateTime)ticket[dalControl.Field]).ToString("dd.MM.yyyy") : string.Empty;
                }
                else
                {
                    control.Value = ticket[dalControl.Field] ?? string.Empty;
                }
            }

            return(control);
        }
示例#2
0
        public UI.Action Make(ActionDefinition definition, DbSearchResponse ticketSet, UI.Event parentNode)
        {
            var action = new UI.Action()
            {
                ActionType = Mapper.Map <UI.ActionType>(definition.ActionType),
                ParentNode = parentNode
            };

            return(action);
        }
示例#3
0
        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);
        }
示例#4
0
 public UI.Action Make(ActionDefinition definition, DbSearchResponse ticketSet, UI.Event parentNode)
 {
     throw new NotImplementedException();
 }