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); } }
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); }
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); }
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; }