public Expression <Func <User, bool> > GetUserExpression(SearchUserVm templateUser) { ExpressionStarter <User> userCondition = PredicateBuilder.New <User>(); if (!string.IsNullOrWhiteSpace(templateUser.NameFirst)) { userCondition = userCondition.And(user => user.NameFirst.ToLower() == templateUser.NameFirst.ToLower()); } if (!string.IsNullOrWhiteSpace(templateUser.NameSecond)) { userCondition = userCondition.And(user => user.NameSecond.ToLower() == templateUser.NameSecond.ToLower()); } if (!string.IsNullOrWhiteSpace(templateUser.City)) { userCondition = userCondition.And(user => user.City.ToLower() == templateUser.City.ToLower()); } if (!string.IsNullOrWhiteSpace(templateUser.Country)) { userCondition = userCondition.And(user => user.Country.ToLower() == templateUser.Country.ToLower()); } if (templateUser.Birthday != null) { userCondition = userCondition.And(user => user.Birthday == templateUser.Birthday); } if (templateUser.Tag != null) { userCondition = userCondition.And(user => user.Tag == templateUser.Tag); } return((Expression <Func <User, bool> >)userCondition.Expand()); }
public ViewResult Index() { CurrentPage = PageTypes.Find; var model = new SearchUserVm(); model.ApplyFilters(); model.FilteredItems = new List <User>(); return(View(model)); }
public ActionResult Index(SearchUserVm model, string output) { CurrentPage = PageTypes.Find; model.ApplyFilters(Request.Form); if (output == "excel") { StringBuilder csvData = new StringBuilder(); csvData.AppendLine(("Name,Batch,Course,Degree,Mobile,Email")); foreach (var item in model.FilteredItems) { var uc = item.UserCourses.Any() ? item.UserCourses[0] : new UserCourse { Batch = "--", BranchName = "--", CourseName = "--" }; csvData.AppendLine(string.Format("{0},{1},{2},{3},{4},{5}", item.FullName, uc.Batch, uc.BranchName, uc.CourseName, item.MobileNumber, item.Email)); } var byteArray = Encoding.ASCII.GetBytes(csvData.ToString()); var stream = new MemoryStream(byteArray); return(File(stream, "text/plain", "NITCAA_UserDetails_" + DateTime.Now.ToString("MMM_dd") + ".csv")); } return(View(model)); }
public async Task <List <UserVm> > GetUsersAsync(SearchUserVm templateUser = null, byte limit = 100, long navigationId = 0, bool confirmed = true) { using (MessengerDbContext context = contextFactory.Create()) { List <User> users; if (templateUser == null) { users = await context.Users .AsNoTracking() .OrderBy(user => user.Id) .Where(user => user.Id > navigationId && user.Confirmed == confirmed && user.Deleted == false && user.NodeId == NodeSettings.Configs.Node.Id) .Include(opt => opt.BlackList) .Include(opt => opt.Emails) .Include(opt => opt.Phones) .Take(limit) .ToListAsync() .ConfigureAwait(false); } else { ExpressionsHelper expressionsHelper = new ExpressionsHelper(); users = await context.Users .AsNoTracking() .OrderBy(user => user.Id) .Where(user => user.Id > navigationId && user.Confirmed == true && user.Deleted == false && user.NodeId == NodeSettings.Configs.Node.Id) .Where(expressionsHelper.GetUserExpression(templateUser)) .Include(opt => opt.Phones) .Include(opt => opt.BlackList) .Include(opt => opt.Emails) .Take(limit) .ToListAsync() .ConfigureAwait(false); } return(UserConverter.GetUsersVm(users)); } }
public PartialViewResult SearchResult(SearchUserVm model) { return(PartialView(model)); }