Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 2
0
        public ViewResult Index()
        {
            CurrentPage = PageTypes.Find;
            var model = new SearchUserVm();

            model.ApplyFilters();
            model.FilteredItems = new List <User>();
            return(View(model));
        }
Ejemplo n.º 3
0
 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));
 }
Ejemplo n.º 4
0
 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));
     }
 }
Ejemplo n.º 5
0
 public PartialViewResult SearchResult(SearchUserVm model)
 {
     return(PartialView(model));
 }