OpenAuth.Net/OpenAuth.Repository/UserRepository.cs

46 lines
1.4 KiB
C#
Raw Normal View History

using OpenAuth.Domain.Interface;
2015-10-26 21:58:12 +08:00
using System;
using System.Collections.Generic;
2015-11-13 21:33:53 +08:00
using System.Globalization;
2015-10-26 21:58:12 +08:00
using System.Linq;
using System.Text;
2015-11-13 21:33:53 +08:00
using System.Transactions;
using EntityFramework.Extensions;
2015-10-26 21:58:12 +08:00
using OpenAuth.Domain;
namespace OpenAuth.Repository
{
public class UserRepository :BaseRepository<User>, IUserRepository
{
2015-11-15 23:00:08 +08:00
public IEnumerable<User> LoadUsers(int pageindex, int pagesize)
2015-10-26 21:58:12 +08:00
{
2015-11-19 22:47:56 +08:00
return Context.Users.OrderBy(u => u.Id).Skip((pageindex - 1) * pagesize).Take(pagesize);
2015-10-26 21:58:12 +08:00
}
2015-11-13 21:33:53 +08:00
public IEnumerable<User> LoadInOrgs(params int[] orgId)
2015-10-26 21:58:12 +08:00
{
2015-11-13 21:33:53 +08:00
var result = from user in Context.Users
where (
2015-11-30 11:58:18 +08:00
Context.Relevances.Where(uo => orgId.Contains(uo.SecondId) && uo.Key =="UserOrg")
.Select(u => u.FirstId)
2015-11-13 21:33:53 +08:00
.Distinct()
)
.Contains(user.Id)
select user;
return result;
2015-10-26 21:58:12 +08:00
}
2015-11-15 00:13:49 +08:00
public int GetUserCntInOrgs(params int[] orgIds)
2015-10-26 21:58:12 +08:00
{
2015-11-13 21:33:53 +08:00
return LoadInOrgs(orgIds).Count();
}
public IEnumerable<User> LoadInOrgs(int pageindex, int pagesize, params int[] orgIds)
{
2015-11-19 22:47:56 +08:00
return LoadInOrgs(orgIds).OrderBy(u =>u.Id).Skip((pageindex -1)*pagesize).Take(pagesize);
2015-11-13 21:33:53 +08:00
}
2015-10-26 21:58:12 +08:00
}
}