Esempio n. 1
0
        private void ProcessDate(DataTableSE sender, DTObject data)
        {
            var dateColumns     = sender.DateColumns;
            var datetimeColumns = sender.DatetimesColumns;

            if (dateColumns.Length > 0 || datetimeColumns.Length > 0)
            {
                data.Each("rows", (row) =>
                {
                    foreach (var column in dateColumns)
                    {
                        if (row.TryGetValue <DateTime>(column, out var value))
                        {
                            row[column] = value.ToString("yyyy/MM/dd");
                        }
                    }

                    foreach (var column in datetimeColumns)
                    {
                        if (row.TryGetValue <DateTime>(column, out var value))
                        {
                            row[column] = value.ToString("yyyy/MM/dd hh:mm");
                        }
                    }
                });
            }
        }
Esempio n. 2
0
        private DTObject GetElementById(string elementId)
        {
            if (_input == null)
            {
                return(null);
            }
            DTObject element = null;

            //找到元素对应的dto数据
            _input.Each("elements", (ele) =>
            {
                var id = ele.GetValue <string>("id", string.Empty);
                if (string.Equals(id, elementId, StringComparison.OrdinalIgnoreCase))
                {
                    element = ele;
                    return(false);
                }
                return(true);
            });//{elements:[{id:'xxxx',metadata:xxxx}]}
            return(element);
        }
Esempio n. 3
0
        /// <summary>
        /// 根据登录人拥有的角色过滤菜单项
        /// </summary>
        /// <param name="rawMenu"></param>
        /// <param name="principalRoles"></param>
        /// <returns></returns>
        private static DTObject FilterMenu(DTObject rawMenu, Principal.Role[] principalRoles)
        {
            var menuRoles = rawMenu.GetList("roles", false);

            if (menuRoles != null)
            {
                var roleCodes = menuRoles.ToArray <string>();
                var result    = principalRoles.FirstOrDefault((role) =>
                {
                    return(roleCodes.Contains(role.MarkedCode, StringComparer.OrdinalIgnoreCase));
                });
                if (result == null)
                {
                    return(null);                //当前登录人没有菜单需要的角色,不能显示
                }
            }

            DTObject menu = DTObject.CreateReusable();

            foreach (var member in _outputMembers)
            {
                if (rawMenu.Exist(member))
                {
                    menu[member] = rawMenu[member];
                }
            }

            rawMenu.Each("childs", (child) =>
            {
                var target = FilterMenu(child, principalRoles);
                if (target != null)
                {
                    menu.Push("childs", target);
                }
            });

            return(menu);
        }