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 void RemovePopupApplet <TContext>(TContext context) where TContext : MainContext, new() { // Удаление попапа из списка аппетов представления и из информации о представлении ViewItem viewItem = View.ViewItems.FirstOrDefault(ap => ap.AppletId == CurrentPopupApplet.Id); Applet applet = ViewApplets.FirstOrDefault(i => i.Id == viewItem.AppletId); ViewItems.Remove(viewItem); View.ViewItems.Remove(viewItem); ViewApplets.Remove(applet); CurrentPopupApplet = null; CurrentPopupControl = null; }