コード例 #1
0
        private async Task <SMSList> GetRecords(SMSFilter filter = null)
        {
            filter = filter == null ? new SMSFilter() : filter;
            List <ShortMessageService> dbRec = new List <ShortMessageService>();

            if (!filter.StartDate.HasValue || !filter.EndDate.HasValue)
            {
                dbRec = await _context.ShortMessageService.Where(d => ((!string.IsNullOrWhiteSpace(filter.ApplicationUserId) && d.CreatedBy == filter.ApplicationUserId) ||
                                                                       (string.IsNullOrWhiteSpace(filter.ApplicationUserId) && (filter.AllRecord || (!filter.AllRecord && d.CreatedBy == _userHandler.User.Id)))) &&
                                                                 (filter.SMSStatus == -1 || (filter.SMSStatus != -1 && filter.SMSStatus == (int)d.SMSStatus))).OrderByDescending(m => m.ModifiedOn).Take(1000).ToListAsync();
            }
            else
            {
                dbRec = await _context.ShortMessageService.Where(d => ((!string.IsNullOrWhiteSpace(filter.ApplicationUserId) && d.CreatedBy == filter.ApplicationUserId) ||
                                                                       (string.IsNullOrWhiteSpace(filter.ApplicationUserId) && (filter.AllRecord || (!filter.AllRecord && d.CreatedBy == _userHandler.User.Id)))) &&
                                                                 d.CreatedOn.HasValue && d.CreatedOn.Value.Date >= filter.StartDate.Value.Date && d.CreatedOn.Value.Date <= filter.EndDate.Value.Date &&
                                                                 (filter.SMSStatus == -1 || (filter.SMSStatus != -1 && filter.SMSStatus == (int)d.SMSStatus))).OrderByDescending(m => m.ModifiedOn).ToListAsync();
            }
            SMSList recList = new SMSList
            {
                UserHandler = _userHandler,
                Records     = _mapper.Map <List <ShortMessageService>, List <SMSModel> >(dbRec)
            };

            return(recList);
        }
コード例 #2
0
        public void FilterTest()
        {
            List <Message> messages = new List <Message>()
            {
                new Message("text0", "num0", true, new DateTime(1990, 01, 11, 2, 21, 31)),
                new Message("text1", "num1", true, new DateTime(1991, 01, 11, 2, 21, 31)),
                new Message("text_2", "_num2", true, new DateTime(1992, 02, 12, 2, 22, 32)),
                new Message("text3", "num3", true, new DateTime(1993, 03, 13, 2, 23, 33)),
                new Message("text_4", "_num4", true, new DateTime(1994, 04, 14, 2, 24, 34)),
                new Message("text5", "num5", true, new DateTime(1995, 05, 15, 2, 25, 35)),
                new Message("text_6", "_num6", true, new DateTime(1996, 06, 16, 2, 26, 36)),
                new Message("text_7", "num7", true, new DateTime(1997, 07, 17, 2, 27, 37)),
                new Message("text8", "_num8", true, new DateTime(1998, 08, 18, 2, 28, 38)),
                new Message("text9", "num9", true, new DateTime(1999, 09, 19, 2, 29, 39))
            };
            var data = new SMSSelectorData("text_", "_num",
                                           new DateTime(1993, 03, 13, 2, 23, 33),
                                           new DateTime(1997, 07, 17, 2, 27, 37));
            var filter = new SMSFilter(new SMSSelectorSimpleFactory().CreateSelector("CompositeSelector"));

            IEnumerable <Message> filtered = filter.Filter(messages, data);

            Assert.AreEqual(filtered.Count(), 2);
            Assert.IsTrue(filtered.Contains(messages[4]));
            Assert.IsTrue(filtered.Contains(messages[6]));
        }
コード例 #3
0
        public void FilterTrivialTest()
        {
            List <Message> messages = new List <Message>()
            {
                new Message("text1", "num1", true, new DateTime(1991, 01, 11, 2, 21, 31)),
                new Message("text_2", "_num2", true, new DateTime(1992, 02, 12, 2, 22, 32)),
                new Message("text_3", "num3", true, new DateTime(1993, 03, 13, 2, 23, 33)),
                new Message("text4", "_num4", true, new DateTime(1994, 04, 14, 2, 24, 34)),
                new Message("text5", "num5", true, new DateTime(1995, 05, 15, 2, 25, 35)),
                new Message("text_6", "_num6", true, new DateTime(1996, 06, 16, 2, 26, 36)),
                new Message("text_7", "num7", true, new DateTime(1997, 07, 17, 2, 27, 37)),
                new Message("text8", "_num8", true, new DateTime(1998, 08, 18, 2, 28, 38)),
                new Message("text9", "num9", true, new DateTime(1999, 09, 19, 2, 29, 39))
            };
            var data = new SMSSelectorData("text_", "_num",
                                           new DateTime(1993, 03, 13, 2, 23, 33),
                                           new DateTime(1997, 07, 17, 2, 27, 37));
            var filter = new SMSFilter(null);

            IEnumerable <Message> filtered = filter.Filter(messages, data);

            Assert.AreEqual(filtered.Count(), messages.Count);
            foreach (Message message in filtered)
            {
                Assert.IsTrue(messages.Contains(message));
            }
        }
コード例 #4
0
        /// <summary>
        /// Gets <see cref="SentSMS"/>s limited by <paramref name="filter"/>.
        /// </summary>
        /// <param name="filter"><see cref="SMSFilter"/> contains From and To limitation</param>
        /// <returns>Collection of <see cref="SentSMS"/></returns>
        /// <exception cref="OdorikException">Throws when Odorik.cz refuses to get SMSs. See <see cref="OdorikException.MessageCode" /> for details.</exception>
        public async Task <IEnumerable <SentSMS> > GetSentSMSsAsync(SMSFilter filter)
        {
            using (var client = new OdorikClient(Credentials))
            {
                var result = await client.GetAsync(filter, SentSMS);

                return(DeserializeResult <IEnumerable <SentSMS> >(result));
            }
        }
コード例 #5
0
 public async Task <IActionResult> Records(SMSFilter filter)
 {
     return(PartialView("_RecordList", await GetRecords(filter)));
 }