コード例 #1
0
ファイル: EventManager.cs プロジェクト: onetcore/gentings
 /// <summary>
 /// 查询用户最新事件列表。
 /// </summary>
 /// <param name="userId">用户Id。</param>
 /// <param name="size">最新数量。</param>
 /// <returns>返回事件查询列表。</returns>
 public virtual IEnumerable <Event> LoadUserEvents(int userId, int size)
 {
     return(_edb.AsQueryable()
            .WithNolock()
            .Where(x => x.UserId == userId)
            .OrderByDescending(x => x.Id)
            .AsEnumerable(size));
 }
コード例 #2
0
 /// <summary>
 /// 获取当前所有者的角色Id。
 /// </summary>
 /// <returns>当前所有者的角色Id。</returns>
 protected virtual int GetOwnerId()
 {
     return(_rdb.AsQueryable()
            .Select(x => x.Id)
            .Where(x => x.IsSystem)
            .OrderByDescending(x => x.RoleLevel)
            .FirstOrDefault(reader => reader.GetInt32(0)));
 }
コード例 #3
0
        /// <summary>
        /// 通过GUID获取存储文件实例。
        /// </summary>
        /// <param name="id">媒体文件Id。</param>
        /// <returns>返回存储文件实例。</returns>
        public virtual async Task <StoredPhysicalFile> FindPhysicalFileAsync(Guid id)
        {
            var file = await _sfdb.AsQueryable().InnerJoin <MediaFile>((sf, mf) => sf.FileId == mf.FileId)
                       .Where <MediaFile>(x => x.Id == id)
                       .Select <MediaFile>(x => x.Name)
                       .Select(x => new { x.FileId, x.ContentType })
                       .FirstOrDefaultAsync(reader => new StoredPhysicalFile(reader));

            file.PhysicalPath = Path.Combine(_media, file.PhysicalPath);
            return(file);
        }
コード例 #4
0
ファイル: SiteManager.cs プロジェクト: ljin518yi/aspnetcore
 /// <summary>
 /// 加载所有网站。
 /// </summary>
 /// <returns>返回所有网站。</returns>
 public virtual IEnumerable <SiteBase> LoadSites()
 {
     return(_sdb.AsQueryable()
            .Select(x => new { x.SiteId, x.SiteName, x.SiteKey, x.UpdatedDate })
            .AsEnumerable(reader => new SiteBase
     {
         SiteId = reader.GetInt32(0),
         SiteName = reader.GetString(1),
         SiteKey = reader.GetString(2),
         UpdatedDate = reader.GetFieldValue <DateTimeOffset>(3)
     }));
 }
コード例 #5
0
 public PaginationList <Customer> GetItems(int?pageNumber)
 {
     try
     {
         int pageIndex = pageNumber ?? 1;
         int pageSize  = 5;
         var source    = _customerContext.AsQueryable();
         int count     = source.Count();
         var items     = source.Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();
         return(new PaginationList <Customer>(items, count, pageIndex, pageSize));
     }
     catch (Exception ex)
     {
         throw;
     }
 }
コード例 #6
0
        /// <summary>
        /// 获取用户列表。
        /// </summary>
        /// <returns>返回用户列表实例。</returns>
        public async Task <IDictionary <int, string> > LoadUsersAsync()
        {
            var users = await _userdb.AsQueryable().WithNolock()
                        .Select(x => new { x.Id, x.NickName })
                        .OrderBy(x => x.NickName)
                        .AsEnumerableAsync(x => KeyValuePair.Create(x.GetInt32(0), x.GetString(1)));

            return(users.ToDictionary(x => x.Key, x => x.Value));
        }
コード例 #7
0
 /// <summary>
 /// 获取应用程序所包含的服务Id列表。
 /// </summary>
 /// <param name="appid">应用程序Id。</param>
 /// <returns>返回服务Id列表。</returns>
 public Task <List <int> > LoadApplicationServicesAsync(Guid appid)
 {
     return(_cache.GetOrCreateAsync(GetCacheKey(appid), async ctx =>
     {
         ctx.SetDefaultAbsoluteExpiration();
         var services = await _asdb.AsQueryable().WithNolock()
                        .Where(x => x.AppId == appid)
                        .Select(x => x.ServiceId)
                        .AsEnumerableAsync(reader => reader.GetInt32(0));
         return services.ToList();
     }));
 }
コード例 #8
0
        public string Execute(string key, string userId)
        {
            IQueryable <KeyKeyValue> kkvs = _dbContext
                                            .AsQueryable <KeyKeyValue>()
                                            .Where(kkv => kkv.Keys.Contains(key) &&
                                                   (string.IsNullOrEmpty(kkv.Scope) || kkv.Scope == userId));

            if (!kkvs.Any())
            {
                return(string.Empty);
            }

            KeyKeyValue keyKeyValue = kkvs.FirstOrDefault(kkv => kkv.Scope == userId) ?? kkvs.First();

            if (keyKeyValue.AlternativeResponses.Count() > 1)
            {
                var number = Random.Next(-1, keyKeyValue.AlternativeResponses.Count());

                return(number == -1 ? keyKeyValue.Response : keyKeyValue.AlternativeResponses.ElementAt(number));
            }

            return(keyKeyValue.Response);
        }
コード例 #9
0
        public async Task ExecuteAsync(string userId, string value, ICollection <string> keys)
        {
            foreach (var key in keys)
            {
                var existingKey = _dbContext.AsQueryable <KeyKeyValue>()
                                  .FirstOrDefault(kkv => kkv.Keys.Contains(key) && kkv.Scope == userId);

                if (existingKey != null)
                {
                    await _dbContext.DeleteAsync(existingKey);
                }
            }

            var kkvs = new KeyKeyValue()
            {
                Keys                 = keys,
                Response             = value,
                AlternativeResponses = new List <string>(0),
                Scope                = userId
            };

            await _dbContext.SaveAsync(kkvs);
        }
コード例 #10
0
 /// <summary>
 /// 获取扩展列表。
 /// </summary>
 /// <returns>返回扩展列表。</returns>
 public Task <IEnumerable <string> > LoadExtensionNamesAsync()
 {
     return(_mfdb.AsQueryable().Distinct(x => x.ExtensionName).AsEnumerableAsync(x => x.GetString(0)));
 }
コード例 #11
0
 /// <summary>
 /// 加载API。
 /// </summary>
 /// <param name="applicationId">应用程序Id。</param>
 /// <returns>返回当前应用程序的API列表。</returns>
 public virtual IEnumerable <ApiDescriptor> LoadApplicationApis(int applicationId)
 {
     return(_apis.AsQueryable().InnerJoin <ApplicationService>((a, s) => a.Id == s.ServiceId)
            .Where <ApplicationService>(x => x.AppicationId == applicationId)
            .AsEnumerable());
 }
コード例 #12
0
ファイル: QueryExtensions.cs プロジェクト: onetcore/gentings
 /// <summary>
 /// 选择用户相关联字段。
 /// </summary>
 /// <typeparam name="TModel">当前实例模型。</typeparam>
 /// <typeparam name="JModel">级联实例类型。</typeparam>
 /// <param name="context">数据操作接口实例对象。</param>
 /// <param name="expression">关联表达式。</param>
 /// <param name="select">选择返回列对象实例。</param>
 /// <returns>返回当前查询实例。</returns>
 public static IQueryable <TModel> JoinSelect <TModel, JModel>(this IDbContext <TModel> context, Expression <Func <TModel, JModel, bool> > expression, Expression <Func <JModel, object> > select)
     where TModel : class
     where JModel : class
 {
     return(context.AsQueryable().WithNolock().InnerJoin <JModel>(expression).Select().Select(select));
 }
コード例 #13
0
ファイル: SearchManager.cs プロジェクト: ljin518yi/aspnetcore
 /// <summary>
 /// 提示搜索列。
 /// </summary>
 /// <param name="name">搜索字符串。</param>
 /// <returns>返回检索的关键词列表。</returns>
 public virtual Task <IEnumerable <SearchIndex> > LoadSuggestions(string name)
 {
     return(_indexes.AsQueryable()
            .Where(x => x.Name.StartsWith(name))
            .AsEnumerableAsync(10));
 }