Example #1
0
        public void AddPopupApplet <TContext>(TContext context)
            where TContext : MainContext, new()
        {
            // Получение названия попапа из up контрола, на котором произошло действие
            ControlUP UP        = CurrentControl?.ControlUPs?.FirstOrDefault(n => n.Name == "Applet");
            string    popupName = UP == null ? string.Empty : UP.Value;
            Applet    popup     = context.Applets
                                  .AsNoTracking()
                                  .Include(b => b.BusComp)
                                  .Include(cntr => cntr.Controls)
                                  .ThenInclude(cntrUp => cntrUp.ControlUPs)
                                  .Include(cntr => cntr.Controls)
                                  .ThenInclude(f => f.Field)
                                  .FirstOrDefault(n => n.Name == popupName);

            // Добавление попапа и его маршрута в информацию о представлении
            if (!ViewApplets.Select(n => n.Name).ToList().Contains(popup.Name))
            {
                // Установка этого попапа как текущего
                CurrentPopupApplet = popup;
                ViewApplets.Add(popup);
                ViewItem viewItem = new ViewItem()
                {
                    Name            = popup.Name,
                    Applet          = popup,
                    AppletId        = popup.Id,
                    Autofocus       = true,
                    AutofocusRecord = 0,
                    View            = View,
                    ViewId          = View.Id
                };
                ViewItems.Add(viewItem);
                View.ViewItems.Add(viewItem);
            }
        }
Example #2
0
        public override ControlUP BusinessToData(ControlUP controlUP, BUSControlUP businessEntity, TContext context, bool NewRecord)
        {
            ControlUP dataEntity = base.BusinessToData(controlUP, businessEntity, context, NewRecord);

            dataEntity.Control   = businessEntity.Control;
            dataEntity.ControlId = businessEntity.ControlId;
            return(dataEntity);
        }
Example #3
0
        public override BUSControlUP DataToBusiness(ControlUP dataEntity, TContext context)
        {
            BUSControlUP businessEntity = base.DataToBusiness(dataEntity, context);

            businessEntity.ControlId = dataEntity.ControlId;
            businessEntity.Control   = context.Controls.FirstOrDefault(i => i.Id == businessEntity.ControlId);
            return(businessEntity);
        }
Example #4
0
        public override BUSControlUP UIToBusiness(UIControlUP UIEntity, TContext context, IViewInfo viewInfo, bool isNewRecord)
        {
            BUSControlUP businessEntity = base.UIToBusiness(UIEntity, context, viewInfo, isNewRecord);
            Control      control        = context.Controls
                                          .AsNoTracking()
                                          .Select(a => new
            {
                id         = a.Id,
                name       = a.Name,
                controlUPs = a.ControlUPs.Select(controlUP => new
                {
                    id   = controlUP.Id,
                    name = controlUP.Name
                })
            })
                                          .Select(a => new Control
            {
                Id         = a.id,
                Name       = a.name,
                ControlUPs = a.controlUPs.Select(controlUP => new ControlUP
                {
                    Id   = controlUP.id,
                    Name = controlUP.name
                }).ToList()
            })
                                          .FirstOrDefault(i => i.Id.ToString() == ComponentsRecordsInfo.GetSelectedRecord("Control"));

            if (control == null)
            {
                businessEntity.ErrorMessage = "First you need create control.";
            }
            else
            {
                // Если запись новая и она не уникальна, записывается ошибка
                ControlUP controlUP = control.ControlUPs?.FirstOrDefault(n => n.Name == UIEntity.Name);
                if (controlUP != null && controlUP.Id != UIEntity.Id)
                {
                    businessEntity.ErrorMessage = $"Control user property with this name is already exists in control {control.Name}.";
                }
                else
                {
                    businessEntity.Control   = control;
                    businessEntity.ControlId = control.Id;
                }
            }
            return(businessEntity);
        }
        public void Initialize <TContext>(TContext context)
            where TContext : MainContext, new()
        {
            Name         = appletInfo.Name;
            BusCompName  = appletInfo.BusCompName;
            Type         = appletInfo.Type;
            Header       = appletInfo.Header;
            DisplayLines = appletInfo.DisplayLines;
            EmptyState   = appletInfo.EmptyState;
            Controls     = new List <UIControl>();
            ControlUPs   = new Dictionary <string, List <UIControlUP> >();
            Columns      = new List <UIColumn>();
            DataBUSControlFR <TContext>   dataBUSControlFactory   = new DataBUSControlFR <TContext>();
            BUSUIControlFR <TContext>     busUIControlFactory     = new BUSUIControlFR <TContext>();
            DataBUSControlUPFR <TContext> dataBUSControlUPFactory = new DataBUSControlUPFR <TContext>();
            BUSUIControlUPFR <TContext>   busUIControlUPFactory   = new BUSUIControlUPFR <TContext>();
            DataBUSColumnFR <TContext>    dataBUSColumnFactory    = new DataBUSColumnFR <TContext>();
            BUSUIColumnFR <TContext>      busUIColumnFactory      = new BUSUIColumnFR <TContext>();

            appletInfo.Controls
            .OrderBy(s => s.Sequence)
            .ToList()
            .ForEach(control =>
            {
                UIControl UIEntity = busUIControlFactory.BusinessToUI(dataBUSControlFactory.DataToBusiness(control, context));
                if (control.Type == "picklist" && control.Field != null)
                {
                    PickList pl = context.PickLists
                                  .Include(b => b.BusComp)
                                  .FirstOrDefault(n => n.Id == control.Field.PickListId);
                    UIEntity.Routing = pl?.BusComp?.Routing;
                }
                if (control.ActionType == ActionType.CopyRecord)
                {
                    ControlUP controlUP = control.ControlUPs.FirstOrDefault(n => n.Name == "Data Map");
                    if (controlUP != null)
                    {
                        DataMap dataMap = context.DataMaps.FirstOrDefault(n => n.Name == controlUP.Value);
                        if (dataMap != null)
                        {
                            UIEntity.Routing = dataMap.Routing;
                        }
                    }
                }
                Controls.Add(UIEntity);
                ControlUPs.Add(control.Name, new List <UIControlUP>());
                control.ControlUPs.ForEach(controlUP =>
                {
                    ControlUPs.GetValueOrDefault(control.Name)
                    .Add(busUIControlUPFactory.BusinessToUI(dataBUSControlUPFactory.DataToBusiness(controlUP, context)));
                });
            });

            appletInfo.Columns
            .OrderBy(s => s.Sequence)
            .ToList()
            .ForEach(column => {
                UIColumn UIEntity = busUIColumnFactory.BusinessToUI(dataBUSColumnFactory.DataToBusiness(column, context));
                Columns.Add(UIEntity);
            });

            PR             = appletInfo.PR;
            Routing        = appletInfo.Routing;
            BusCompRouting = appletInfo.BusCompRouting;
            Initflag       = appletInfo.Initflag;
        }