public IEnumerable <int> GetCompanyIdsByUsersProperties(string firstName, string lastName, string email) { if (string.IsNullOrEmpty(firstName) && string.IsNullOrEmpty(lastName) && string.IsNullOrEmpty(email)) { return(new List <int>()); } QueryOver <User, User> queryOver = new QueryOverUser().GetQueryOver(); if (!string.IsNullOrEmpty(firstName)) { queryOver.And(Restrictions.On <User>(u => u.FirstName).IsInsensitiveLike(firstName, MatchMode.Anywhere)); } if (!string.IsNullOrEmpty(lastName)) { queryOver.And(Restrictions.On <User>(u => u.LastName).IsInsensitiveLike(lastName, MatchMode.Anywhere)); } if (!string.IsNullOrEmpty(email)) { queryOver.And(Restrictions.On <User>(u => u.Email).IsInsensitiveLike(email, MatchMode.Anywhere)); } queryOver.Select(u => u.Company.Id).TransformUsing(Transformers.DistinctRootEntity); return(this.Repository.FindAll <int>(queryOver)); }
//public IEnumerable<User> GetAllForUsersPaged( // IEnumerable<int> userIds, // int pageIndex, // int pageSize, // out int totalCount) //{ // QueryOver<User, User> queryOver = // new DefaultQueryOver<User, int>().GetQueryOver() // .WhereRestrictionOn(x => x.Id) // .IsInG(userIds) // .OrderBy(x => x.FirstName) // .Asc; // QueryOver<User, User> rowCountQuery = queryOver.ToRowCountQuery(); // totalCount = this.Repository.FindOne<int>(rowCountQuery).Value; // QueryOver<User> pagedQuery = queryOver.Take(pageSize).Skip((pageIndex - 1) * pageSize); // return this.Repository.FindAll(pagedQuery); //} //public virtual IEnumerable<User> GetAllPaged(int pageIndex, int pageSize, out int totalCount) //{ // QueryOver<User, User> queryOver = // new DefaultQueryOver<User, int>().GetQueryOver().OrderBy(x => x.FirstName).Asc; // QueryOver<User, User> rowCountQuery = queryOver.ToRowCountQuery(); // totalCount = this.Repository.FindOne<int>(rowCountQuery).Value; // QueryOver<User> pagedQuery = queryOver.Take(pageSize).Skip((pageIndex - 1) * pageSize); // return this.Repository.FindAll(pagedQuery); //} //public IEnumerable<int> GetAllUsersThatCanApproveThisPin(int pinId) //{ // return // this.Repository.StoreProcedureForMany<int>( // "GetAllUsersThatCanApproveThisPin", // new StoreProcedureParam<int>("PinId", pinId)).ToList(); //} /// <summary> /// The get count for company. /// </summary> /// <param name="companyId"> /// The company id. /// </param> /// <returns> /// The <see cref="IFutureValue{Int32}"/>. /// </returns> public IFutureValue <int> GetCountForCompany(int companyId) { QueryOver <User, User> queryOver = new QueryOverUser().GetQueryOver().And(x => x.Company.Id == companyId).ToRowCountQuery(); return(this.Repository.FindOne <int>(queryOver)); }
/// <summary> /// The get one by token. /// </summary> /// <param name="sessionToken"> /// The session token. /// </param> /// <returns> /// The <see cref="IFutureValue{User}"/>. /// </returns> public IFutureValue <User> GetOneByToken(string sessionToken) { var queryOver = new QueryOverUser().GetQueryOver() .Fetch(x => x.UserRole).Eager .WhereRestrictionOn(x => x.SessionToken).IsLike(sessionToken).Take(1); return(this.Repository.FindOne(queryOver)); }
/// <summary> /// The get one by email. /// </summary> /// <param name="email"> /// The email. /// </param> /// <returns> /// The <see cref="IFutureValue{User}"/>. /// </returns> public virtual IFutureValue <User> GetOneByEmail(string email) { string emailToLower = email.ToLower(); QueryOver <User, User> queryOver = new QueryOverUser().GetQueryOver().WhereRestrictionOn(x => x.Email).IsInsensitiveLike(emailToLower); return(this.Repository.FindOne(queryOver)); }
public virtual User GetByEmailWithRole(string email) { string emailToLower = email.ToLower(); QueryOver <User, User> queryOver = new QueryOverUser().GetQueryOver() .Fetch(x => x.UserRole).Eager .WhereRestrictionOn(x => x.Email).IsInsensitiveLike(emailToLower); return(this.Repository.FindOne(queryOver).Value); }
/// <summary> /// The get all by emails. /// </summary> /// <param name="emails"> /// The emails. /// </param> /// <returns> /// The <see cref="IEnumerable{Contact}"/>. /// </returns> public virtual IEnumerable <User> GetAllByEmails(List <string> emails) { var queryOver = new QueryOverUser().GetQueryOver(); var disjunction = new Disjunction(); foreach (var email in emails) { disjunction.Add(Restrictions.On <User>(x => x.Email).IsInsensitiveLike(email)); } queryOver.Where(disjunction); return(this.Repository.FindAll(queryOver)); }
//public IEnumerable<int> GetAllDependantUserIdsIncludingCurrent(User user) //{ // List<int> result = // this.Repository.StoreProcedureForMany<int>( // "GetChildUserIds", // new StoreProcedureParam<int>("UserId", user.Id)).ToList(); // result.Add(user.Id); // return result; //} /// <summary> /// The get all for company. /// </summary> /// <param name="companyId"> /// The company id. /// </param> /// <returns> /// The <see cref="IEnumerable{User}"/>. /// </returns> public IEnumerable <UserWithLoginHistoryDTO> GetAllForCompany(int companyId) { var queryOver = new QueryOverUser().GetQueryOver().Where(x => x.Company.Id == companyId).Fetch(x => x.UserRole).Eager; var users = this.Repository.FindAll(queryOver).ToList(); var usersIds = users.Select(x => x.Id).ToList(); User u = null; UserLoginHistory h = null; UserLastLoginFromStoredProcedureDTO dto = null; var queryOver2 = new QueryOverUser().GetQueryOver(() => u).WhereRestrictionOn(() => u.Id).IsIn(usersIds) .JoinQueryOver(() => u.LoginHistory, () => h).OrderBy(() => h.DateCreated).Desc .SelectList(l => l.Select(() => u.Id).WithAlias(() => dto.userId).Select(() => h.DateCreated).WithAlias(() => dto.loginDate)) .TransformUsing(Transformers.AliasToBean <UserLastLoginFromStoredProcedureDTO>()).Take(1); var logindatesForUsers = this.Repository.FindAll <UserLastLoginFromStoredProcedureDTO>(queryOver2).ToList(); return(users.Select(x => new UserWithLoginHistoryDTO(x, logindatesForUsers.FirstOrDefault(hl => hl.userId == x.Id).Return(hl => hl.loginDate, (DateTime?)null)))); }
//public IEnumerable<string> GetAdministratorEmails() //{ // const int AdminRole = (int)UserRoleEnum.Admin; // QueryOver<User, User> queryOver = // new QueryOverUser().GetQueryOver().And(x => x.UserRole.Id == AdminRole).Select(x => x.Email); // return this.Repository.FindAll<string>(queryOver); //} /// <summary> /// The get all for company. /// </summary> /// <returns> /// The <see cref="IEnumerable{User}" />. /// </returns> public override IEnumerable <User> GetAll() { QueryOver <User, User> defaultQuery = new QueryOverUser().GetQueryOver().Fetch(x => x.UserRole).Eager; return(this.Repository.FindAll(defaultQuery)); }
/// <summary> /// The get all by ids. /// </summary> /// <param name="ids"> /// The ids. /// </param> /// <returns> /// The <see cref="IEnumerable{User}"/>. /// </returns> public override IEnumerable <User> GetAllByIds(List <int> ids) { QueryOver <User, User> queryOver = new QueryOverUser().GetQueryOver().AndRestrictionOn(x => x.Id).IsIn(ids); return(this.Repository.FindAll(queryOver)); }