예제 #1
0
        private TabDto MarkSelectedTab(TabDto rootNode, int selectedTabId, PortalInfo portalInfo, string cultureCode,
                                       bool isMultiLanguage, string validateTab)
        {
            var tempTabs = new List <int>();

            cultureCode = string.IsNullOrEmpty(cultureCode) ? portalInfo.CultureCode : cultureCode;
            var locale      = LocaleController.Instance.GetLocale(cultureCode);
            var selectedTab = GetTabByCulture(selectedTabId, portalInfo.PortalID, locale);

            if (selectedTab != null)
            {
                tempTabs.Add(Convert.ToInt32(selectedTab.TabId));
                if (selectedTab.ParentTabId > Null.NullInteger)
                {
                    var parentTab = selectedTab;
                    do
                    {
                        parentTab = GetTabByCulture(parentTab.ParentTabId, portalInfo.PortalID, locale);
                        if (parentTab != null)
                        {
                            tempTabs.Add(Convert.ToInt32(parentTab.TabId));
                        }
                    } while (parentTab != null && parentTab.ParentTabId > Null.NullInteger);
                }
            }
            tempTabs.Reverse();
            rootNode.ChildTabs = GetDescendantsForTabs(tempTabs, rootNode.ChildTabs, selectedTabId, portalInfo.PortalID,
                                                       cultureCode, isMultiLanguage).ToList();
            if (!string.IsNullOrEmpty(validateTab))
            {
                rootNode.ChildTabs = ValidateModuleInTab(rootNode.ChildTabs, validateTab).ToList();
            }
            return(rootNode);
        }
        private void AddChildNodes(TabDto parentNode, PortalInfo portal, string cultureCode)
        {
            if (parentNode.ChildTabs != null)
            {
                parentNode.ChildTabs.Clear();
                int parentId;
                int.TryParse(parentNode.TabId, out parentId);
                var tabs = GetFilteredTabs(TabController.Instance.GetTabsByPortal(portal.PortalID).WithCulture(cultureCode, true)).WithParentId(parentId);

                foreach (var tab in tabs)
                {
                    if (tab.ParentId == parentId)
                    {
                        var node = new TabDto
                        {
                            Name        = tab.TabName,
                            TabId       = tab.TabID.ToString(CultureInfo.InvariantCulture),
                            ParentTabId = tab.ParentId
                        };
                        AddChildNodes(node, portal, cultureCode);
                        parentNode.ChildTabs.Add(node);
                    }
                }
            }
        }
예제 #3
0
        public async Task <IActionResult> CreateTab([FromBody] TabDto tab)
        {
            var tabId = await _mediator.Send(new CreateTabCommand()
            {
                Name = tab.Name
            });

            return(Created($"/api/Tabs/{tabId}", tabId));
        }
예제 #4
0
파일: Tab.cs 프로젝트: Optiart/Schedule
 public Tab(TabDto dto)
 {
     Id = dto.Id;
     NumberOfDevices      = dto.NumberOfDevices;
     DeviceType           = (DeviceType)dto.DeviceType;
     DeviceProductivities = JsonConvert.DeserializeObject <decimal[]>(dto.Productivity);
     NumberOfPalleteRows  = dto.NumberOfPalletes;
     NumberOfWorkPerRow   = dto.NumberOfWork;
     DurationByWork       = JsonConvert.DeserializeObject <int[, ]>(dto.WorkPerPallete);
 }
예제 #5
0
        public int Save(Tab tabModel)
        {
            var dto = new TabDto
            {
                DeviceType       = (byte)tabModel.DeviceType,
                NumberOfDevices  = tabModel.NumberOfDevices,
                NumberOfPalletes = tabModel.NumberOfPalleteRows,
                NumberOfWork     = tabModel.NumberOfWorkPerRow,
                Productivity     = JsonConvert.SerializeObject(tabModel.DeviceProductivities),
                WorkPerPallete   = JsonConvert.SerializeObject(tabModel.DurationByWork)
            };

            _repository.Save(dto);
            return(dto.Id);
        }
예제 #6
0
        public async Task <IActionResult> UpdateTab([FromRoute] Guid tabId, [FromBody] TabDto tab)
        {
            var readResult = await _mediator.Send(new GetTabQuery()
            {
                TabId = tabId
            });

            if (readResult.ResultCode != ResultCode.Ok)
            {
                return(ResultToResponse(readResult));
            }

            var result = await _mediator.Send(new UpdateTabCommand()
            {
                TabId = tabId,
                Name  = tab.Name
            });

            return(ResultToResponse(result));
        }
예제 #7
0
        public IEnumerable <TabDto> GetTabsDescendants(int portalId, int parentId, string cultureCode, bool isMultiLanguage, string roles = "", bool disabledNotSelectable = false, int sortOrder = 0, string validateTab = "", bool includeHostPages = false, bool includeDisabled = false, bool includeDeletedChildren = true)
        {
            var descendants = new List <TabDto>();

            cultureCode = string.IsNullOrEmpty(cultureCode) ? PortalController.Instance.GetPortal(portalId).CultureCode : cultureCode;

            var tabs =
                GetExportableTabs(TabController.Instance.GetTabsByPortal(portalId)
                                  .WithCulture(cultureCode, true))
                .WithParentId(parentId).ToList();


            if (!string.IsNullOrEmpty(validateTab))
            {
                tabs = ValidateModuleInTab(tabs, validateTab).ToList();
            }

            var filterTabs = FilterTabsByRole(tabs, roles, disabledNotSelectable);

            foreach (var tab in tabs.Where(
                         x => x.ParentId == parentId &&
                         (
                             includeDeletedChildren ||
                             !x.IsDeleted)))
            {
                string tooltip;
                var    nodeIcon = GetNodeIcon(tab, out tooltip);
                var    node     = new TabDto
                {
                    Name        = tab.TabName, //$"{tab.TabName} {GetNodeStatusIcon(tab)}",
                    TabId       = tab.TabID.ToString(CultureInfo.InvariantCulture),
                    ImageUrl    = nodeIcon,
                    Tooltip     = tooltip,
                    ParentTabId = tab.ParentId,
                    HasChildren = tab.HasChildren,
                    Selectable  = filterTabs.Contains(tab.TabID) && TabPermissionController.CanAddPage(tab)
                };
                descendants.Add(node);
            }
            return(ApplySort(descendants, sortOrder));
        }
        public TabDto GetPortalTabs(int portalId, string cultureCode, bool isMultiLanguage)
        {
            if (string.IsNullOrEmpty(cultureCode))
            {
                cultureCode = LocaleController.Instance.GetDefaultLocale(portalId).Code;
            }

            var rootNode = new TabDto
            {
                Name        = PortalSettings.PortalName,
                TabId       = Null.NullInteger.ToString(CultureInfo.InvariantCulture),
                ParentTabId = Null.NullInteger,
                ChildTabs   = new List <TabDto>()
            };

            var portalInfo = PortalController.Instance.GetPortal(portalId);
            var tabs       = TabController.GetPortalTabs(isMultiLanguage ? TabController.GetTabsBySortOrder(portalId, portalInfo.DefaultLanguage, true) : TabController.GetTabsBySortOrder(portalId, cultureCode, true), Null.NullInteger, false, "<" + Localization.GetString("None_Specified") + ">", true, false, true, false, false).Where(t => !t.IsSystem).ToList();

            foreach (var tab in tabs)
            {
                if (tab.Level == 0 && tab.TabID != portalInfo.AdminTabId)
                {
                    var node = new TabDto
                    {
                        Name        = tab.TabName,
                        TabId       = tab.TabID.ToString(CultureInfo.InvariantCulture),
                        ParentTabId = tab.ParentId,
                        ChildTabs   = new List <TabDto>()
                    };

                    AddChildNodes(node, portalInfo, cultureCode);
                    rootNode.ChildTabs.Add(node);
                }
            }

            return(rootNode);
        }
예제 #9
0
        public TabDto GetPortalTabs(UserInfo userInfo, int portalId, string cultureCode, bool isMultiLanguage, bool excludeAdminTabs = true,
                                    string roles      = "", bool disabledNotSelectable = false, int sortOrder      = 0,
                                    int selectedTabId = -1, string validateTab         = "", bool includeHostPages = false, bool includeDisabled = false, bool includeDeleted = false, bool includeDeletedChildren = true)
        {
            var portalInfo = PortalController.Instance.GetPortal(portalId);

            var rootNode = new TabDto
            {
                Name        = portalInfo.PortalName,
                ImageUrl    = IconPortal,
                TabId       = Null.NullInteger.ToString(CultureInfo.InvariantCulture),
                ChildTabs   = new List <TabDto>(),
                HasChildren = true
            };
            var tabs = new List <TabInfo>();

            cultureCode = string.IsNullOrEmpty(cultureCode) ? portalInfo.CultureCode : cultureCode;
            if (portalId > -1)
            {
                tabs =
                    TabController.GetPortalTabs(
                        isMultiLanguage
                            ? TabController.GetTabsBySortOrder(portalId, portalInfo.DefaultLanguage, true)
                            : TabController.GetTabsBySortOrder(portalId, cultureCode, true), Null.NullInteger, false,
                        "<" + Localization.GetString("None_Specified") + ">", true, includeDeleted, true, false, false, includeDeletedChildren)
                    .Where(t => (!t.DisableLink || includeDisabled) && !t.IsSystem)
                    .ToList();

                if (userInfo.IsSuperUser && includeHostPages)
                {
                    tabs.AddRange(
                        TabController.Instance.GetTabsByPortal(-1)
                        .AsList()
                        .Where(t => !t.IsDeleted && !t.DisableLink && !t.IsSystem)
                        .ToList());
                }
            }
            else
            {
                if (userInfo.IsSuperUser)
                {
                    tabs = TabController.Instance.GetTabsByPortal(-1).AsList().Where(t => !t.IsDeleted && !t.DisableLink && !t.IsSystem).ToList();
                }
            }

            tabs = excludeAdminTabs
                ? tabs.Where(tab => tab.Level == 0 && tab.TabID != portalInfo.AdminTabId).ToList()
                : tabs.Where(tab => tab.Level == 0).ToList();

            if (!string.IsNullOrEmpty(validateTab))
            {
                tabs = ValidateModuleInTab(tabs, validateTab).ToList();
            }
            var filterTabs = FilterTabsByRole(tabs, roles, disabledNotSelectable);

            rootNode.HasChildren = tabs.Count > 0;
            rootNode.Selectable  = SecurityService.Instance.IsPagesAdminUser();
            foreach (var tab in tabs)
            {
                string tooltip;
                var    nodeIcon = GetNodeIcon(tab, out tooltip);
                var    node     = new TabDto
                {
                    Name        = tab.LocalizedTabName, //$"{tab.TabName} {GetNodeStatusIcon(tab)}",
                    TabId       = tab.TabID.ToString(CultureInfo.InvariantCulture),
                    ImageUrl    = nodeIcon,
                    Tooltip     = tooltip,
                    ParentTabId = tab.ParentId,
                    HasChildren = tab.HasChildren,
                    Selectable  = filterTabs.Contains(tab.TabID) && TabPermissionController.CanAddPage(tab),
                    ChildTabs   = new List <TabDto>()
                };
                rootNode.ChildTabs.Add(node);
            }
            rootNode.ChildTabs = ApplySort(rootNode.ChildTabs, sortOrder).ToList();

            return(selectedTabId > -1
                ? MarkSelectedTab(rootNode, selectedTabId, portalInfo, cultureCode, isMultiLanguage, validateTab)
                : rootNode);
        }
예제 #10
0
        public TabDto SearchPortalTabs(UserInfo userInfo, string searchText, int portalId, string roles = "", bool disabledNotSelectable = false, int sortOrder = 0, string validateTab = "", bool includeHostPages = false, bool includeDisabled = false, bool includeDeleted = false)
        {
            var rootNode = new TabDto
            {
                Name        = PortalSettings.PortalName,
                ImageUrl    = IconPortal,
                TabId       = Null.NullInteger.ToString(CultureInfo.InvariantCulture),
                ChildTabs   = new List <TabDto>(),
                HasChildren = true
            };
            Func <TabInfo, bool> searchFunc;

            if (string.IsNullOrEmpty(searchText))
            {
                searchFunc = page => true;
            }
            else
            {
                searchFunc =
                    page => page.LocalizedTabName.IndexOf(searchText, StringComparison.InvariantCultureIgnoreCase) > -1;
            }
            var tabs = new List <TabInfo>();

            if (portalId > -1)
            {
                tabs =
                    TabController.Instance.GetTabsByPortal(portalId)
                    .Where(
                        tab =>
                        (includeDisabled || !tab.Value.DisableLink) &&
                        (includeDeleted || !tab.Value.IsDeleted) &&
                        (tab.Value.TabType == TabType.Normal) &&
                        searchFunc(tab.Value) &&
                        !tab.Value.IsSystem)
                    .Select(tab => tab.Value).ToList();

                if (userInfo.IsSuperUser && includeHostPages)
                {
                    tabs.AddRange(TabController.Instance.GetTabsByPortal(-1).Where(tab => !tab.Value.DisableLink && searchFunc(tab.Value) && !tab.Value.IsSystem)
                                  .OrderBy(tab => tab.Value.TabOrder)
                                  .Select(tab => tab.Value)
                                  .ToList());
                }
            }
            else
            {
                if (userInfo.IsSuperUser)
                {
                    tabs = TabController.Instance.GetTabsByPortal(-1).Where(tab => !tab.Value.DisableLink && searchFunc(tab.Value) && !tab.Value.IsSystem)
                           .OrderBy(tab => tab.Value.TabOrder)
                           .Select(tab => tab.Value)
                           .ToList();
                }
            }

            var filterTabs = FilterTabsByRole(tabs, roles, disabledNotSelectable);

            rootNode.HasChildren = tabs.Any();
            rootNode.Selectable  = SecurityService.Instance.IsPagesAdminUser();
            foreach (var tab in tabs)
            {
                string tooltip;
                var    nodeIcon = GetNodeIcon(tab, out tooltip);
                var    node     = new TabDto
                {
                    Name        = tab.LocalizedTabName,
                    TabId       = tab.TabID.ToString(CultureInfo.InvariantCulture),
                    ImageUrl    = nodeIcon,
                    ParentTabId = tab.ParentId,
                    HasChildren = false,
                    Selectable  = filterTabs.Contains(tab.TabID) && TabPermissionController.CanAddPage(tab)
                };
                rootNode.ChildTabs.Add(node);
            }
            rootNode.ChildTabs = ApplySort(rootNode.ChildTabs, sortOrder).ToList();
            if (!string.IsNullOrEmpty(validateTab))
            {
                rootNode.ChildTabs = ValidateModuleInTab(rootNode.ChildTabs, validateTab).ToList();
            }
            return(rootNode);
        }