コード例 #1
0
        public async Task <ActionResult <GetResult> > Get([FromQuery] GetRequest request)
        {
            var relatedIdentities = ListUtils.GetIntList(request.RelatedIdentities);
            var style             = await _tableStyleRepository.GetTableStyleAsync(request.TableName, request.AttributeName, relatedIdentities);

            var options = ListUtils.GetEnums <ValidateType>().Select(validateType =>
                                                                     new Select <string>(validateType.GetValue(), validateType.GetDisplayName()));

            return(new GetResult
            {
                Options = options,
                Rules = TranslateUtils.JsonDeserialize <IEnumerable <InputStyleRule> >(style.RuleValues)
            });
        }
コード例 #2
0
        public async Task <ActionResult <GetResult> > Get([FromQuery] SiteRequest request)
        {
            if (!await _authManager.HasSitePermissionsAsync(request.SiteId, Types.SitePermissions.WxMenus))
            {
                return(Unauthorized());
            }

            var wxMenus = await _wxMenuRepository.GetMenusAsync(request.SiteId);

            var menuTypes = ListUtils.GetEnums <WxMenuType>().Select(x => new Select <string>
            {
                Label = x.GetDisplayName(),
                Value = x.GetValue()
            });

            return(new GetResult
            {
                WxMenus = wxMenus,
                MenuTypes = menuTypes
            });
        }
コード例 #3
0
        public async Task <ActionResult <GetResult> > Get([FromQuery] SiteRequest request)
        {
            if (!await _authManager.HasSitePermissionsAsync(request.SiteId, Types.SitePermissions.ChannelsTranslate))
            {
                return(Unauthorized());
            }

            var site = await _siteRepository.GetAsync(request.SiteId);

            if (site == null)
            {
                return(NotFound());
            }

            var channel = await _channelRepository.GetAsync(request.SiteId);

            var cascade = await _channelRepository.GetCascadeAsync(site, channel, async summary =>
            {
                var count = await _contentRepository.GetCountAsync(site, summary);
                return(new
                {
                    Count = count,
                    summary.IndexName
                });
            });

            var transSites = await _siteRepository.GetSelectsAsync();

            var translateTypes = ListUtils.GetEnums <ChannelTranslateType>().Select(x => new Select <string>(x));

            return(new GetResult
            {
                Channels = cascade,
                TransSites = transSites,
                TranslateTypes = translateTypes
            });
        }
コード例 #4
0
ファイル: WxMenuType.cs プロジェクト: apphost/sscms
 public override WxMenuType ReadJson(JsonReader reader, Type objectType, WxMenuType existingValue, bool hasExistingValue, JsonSerializer serializer)
 {
     var token = reader.Value as string ?? reader.Value.ToString();
     var list = ListUtils.GetEnums<WxMenuType>();
     return list.FirstOrDefault(x => x.GetValue() == token);
 }
コード例 #5
0
ファイル: RoleRepository.cs プロジェクト: apphost/sscms
        public bool IsPredefinedRole(string roleName)
        {
            var roles = ListUtils.GetEnums <PredefinedRole>().Select(x => x.GetValue()).ToList();

            return(ListUtils.ContainsIgnoreCase(roles, roleName));
        }
コード例 #6
0
        public async Task <ActionResult <GetResult> > Get([FromQuery] GetRequest request)
        {
            if (!await _authManager.HasAppPermissionsAsync(Types.AppPermissions.SettingsAdministrators))
            {
                return(Unauthorized());
            }

            var roles = new List <KeyValuePair <string, string> >();

            var adminId      = _authManager.AdminId;
            var adminName    = _authManager.AdminName;
            var roleNameList = await _authManager.IsSuperAdminAsync() ? await _roleRepository.GetRoleNamesAsync() : await _roleRepository.GetRoleNamesByCreatorUserNameAsync(adminName);

            var predefinedRoles = ListUtils.GetEnums <PredefinedRole>();

            foreach (var predefinedRole in predefinedRoles)
            {
                roles.Add(new KeyValuePair <string, string>(predefinedRole.GetValue(), predefinedRole.GetDisplayName()));
            }
            foreach (var roleName in roleNameList)
            {
                if (!roles.Any(x => StringUtils.EqualsIgnoreCase(x.Key, roleName)))
                {
                    roles.Add(new KeyValuePair <string, string>(roleName, roleName));
                }
            }

            var isSuperAdmin = await _authManager.IsSuperAdminAsync();

            var creatorUserName = isSuperAdmin ? string.Empty : adminName;
            var count           = await _administratorRepository.GetCountAsync(creatorUserName, request.Role, request.LastActivityDate, request.Keyword);

            var administrators = await _administratorRepository.GetAdministratorsAsync(creatorUserName, request.Role, request.Order, request.LastActivityDate, request.Keyword, request.Offset, request.Limit);

            var admins = new List <Admin>();

            foreach (var administratorInfo in administrators)
            {
                admins.Add(new Admin
                {
                    Id          = administratorInfo.Id,
                    AvatarUrl   = administratorInfo.AvatarUrl,
                    UserName    = administratorInfo.UserName,
                    DisplayName = string.IsNullOrEmpty(administratorInfo.DisplayName)
                        ? administratorInfo.UserName
                        : administratorInfo.DisplayName,
                    Mobile           = administratorInfo.Mobile,
                    LastActivityDate = administratorInfo.LastActivityDate,
                    CountOfLogin     = administratorInfo.CountOfLogin,
                    Locked           = administratorInfo.Locked,
                    Roles            = await _administratorRepository.GetRolesAsync(administratorInfo.UserName)
                });
            }

            return(new GetResult
            {
                Administrators = admins,
                Count = count,
                Roles = roles,
                IsSuperAdmin = await _authManager.IsSuperAdminAsync(),
                AdminId = adminId
            });
        }
コード例 #7
0
ファイル: InstallController.cs プロジェクト: apphost/sscms
        public async Task <ActionResult <GetResult> > Get()
        {
            if (!await _configRepository.IsNeedInstallAsync())
            {
                return(new GetResult
                {
                    Forbidden = true
                });
            }

            var rootWritable = false;

            try
            {
                var filePath = PathUtils.Combine(_settingsManager.ContentRootPath, "version.txt");
                FileUtils.WriteText(filePath, _settingsManager.Version);

                var ioPermission = new FileIOPermission(FileIOPermissionAccess.Write, _settingsManager.ContentRootPath);
                ioPermission.Demand();

                rootWritable = true;
            }
            catch
            {
                // ignored
            }

            var siteFilesWritable = false;

            try
            {
                var filePath = PathUtils.Combine(_settingsManager.WebRootPath, DirectoryUtils.SiteFiles.DirectoryName, "index.html");
                FileUtils.WriteText(filePath, Constants.Html5Empty);

                var ioPermission = new FileIOPermission(FileIOPermissionAccess.Write, PathUtils.Combine(_settingsManager.ContentRootPath, DirectoryUtils.SiteFiles.DirectoryName));
                ioPermission.Demand();

                siteFilesWritable = true;
            }
            catch
            {
                // ignored
            }

            var result = new GetResult
            {
                Version = _settingsManager.Version,
                FrameworkDescription = _settingsManager.FrameworkDescription,
                OSDescription        = _settingsManager.OSDescription,
                ContentRootPath      = _settingsManager.ContentRootPath,
                WebRootPath          = _settingsManager.WebRootPath,
                RootWritable         = rootWritable,
                SiteFilesWritable    = siteFilesWritable,
                DatabaseTypes        = new List <Select <string> >(),
                AdminUrl             = _pathManager.GetAdminUrl(LoginController.Route)
            };

            foreach (var databaseType in ListUtils.GetEnums <DatabaseType>())
            {
                result.DatabaseTypes.Add(new Select <string>(databaseType));
            }

            return(result);
        }
コード例 #8
0
ファイル: InputTypeUtils.cs プロジェクト: apphost/sscms
 public static IEnumerable <KeyValuePair <InputType, string> > GetInputTypes()
 {
     return(ListUtils.GetEnums <InputType>().Select(inputType =>
                                                    new KeyValuePair <InputType, string>(inputType, inputType.GetDisplayName())));
 }