public SearchMetadata <VmGame> Search(VmGameSearch condition) { var total = 0L; var games = this._service.SearchGame(condition, out total); return(new SearchMetadata <VmGame>(games, total)); }
public List <VmGame> SearchGame(VmGameSearch condition, out long total) { var repository = base.UnitOfWork.Repository <Game>(); GameCategory category = (GameCategory)Convert.ToInt32(condition.Category); var query = from gameInfo in repository.Queryable() select gameInfo; if (category != GameCategory.All) { query = query.Where(m => m.Info.Category == category); } if (!string.IsNullOrEmpty(condition.Name)) { query = query.Where(m => m.Info.Name.Contains(condition.Name)); } total = query.Count(); return(query.Select(m => new VmGame { Id = m.Id, Name = m.Info.Name, Description = m.Info.Description, Category = m.Info.Category, Rule = m.Info.Rule, Author = m.Info.Author.Name, AuthorId = m.Info.AuthorId }).ToList()); }