コード例 #1
0
        public async Task <RoleDetails> GetByIdAsync(int?roleId)
        {
            if (roleId == null || roleId < 1)
            {
                return(await GetAnonymousRoleAsync());
            }

            var cachedRole = await _roleCache.GetOrAddAsync(roleId.Value, async() =>
            {
                var dbRole = await QueryRoleById(roleId.Value).FirstOrDefaultAsync();
                var result = _roleMappingHelper.MapDetails(dbRole);

                return(result);
            });

            if (cachedRole == null)
            {
                return(GetAnonymousRole());
            }
            return(cachedRole);
        }
コード例 #2
0
        public async Task <RoleDetails> GetByIdAsync(int?roleId)
        {
            if (!roleId.HasValue)
            {
                return(await GetAnonymousRoleFromCacheAsync());
            }
            if (roleId < 1)
            {
                return(null);
            }

            var cachedRole = await _roleCache.GetOrAddAsync(roleId.Value, async() =>
            {
                var dbRole = await QueryRoles()
                             .FilterById(roleId.Value)
                             .SingleOrDefaultAsync();

                var result = _roleDetailsMapper.Map(dbRole);

                return(result);
            });

            return(cachedRole);
        }