View difference between Paste ID: EWpkCSXS and z9fKXp5J
SHOW: | | - or go back to the newest paste.
1
2
            Ensure.Argument.NotNull(template);
3-
            
3+
4-
            var users = _userRepo
4+
            var accountStateCode = UserBase.GetAccountStateCode(template.QueueAccountState);
5-
                .AllIncluding(u => u.SentEmails);
5+
            var since = DateTime.Today.AddDays(-template.QueueDays);
6
7
            var users = _userRepo.AllIncluding(u => u.SentEmails)
8
                                 .Where(u => u.AccountStateCode == accountStateCode
9
                                          && u is Customer
10-
                    users = users.Where(ud => ud.RegisteredOn <= DateTime.Today.AddDays(template.QueueDays));
10+
                                          && !u.SentEmails.Select(s => s.EmailTemplateId).Contains(template.Id));
11
12
            switch (template.QueueAfter)
13-
                    throw new ArgumentOutOfRangeException();
13+
14
                case QueueAfter.RegistrationDate:
15-
            
15+
                    users = users.Where(ud => ud.RegisteredOn <= since);
16-
            var asc = UserBase.GetAccountStateCode(template.QueueAccountState);
16+
17-
            return users
17+
18-
                .Where(u => u.AccountStateCode == asc
18+
                    throw new Exception("Geen QueueAfter ingevuld.");
19-
                         && u is Customer
19+
20-
                         && !u.SentEmails.Select(s => s.EmailTemplateId).Contains(template.Id))
20+
21-
                    .Select(user => user as Customer)
21+
            return users.Select(user => user as Customer).ToList();