コード例 #1
0
ファイル: CallLogDal.cs プロジェクト: quyentruc54/HeThongSSCD
        public List <SearchCallLogResult> Search(SearchCallLogCriteria cr)
        {
            if (!cr.CanSearch())
            {
                return(null);
            }

            using (var ctx = new NovaAlertContext())
            {
                var query = BuildCallLogSearchQuery(cr, ctx);
                var list  = new List <SearchCallLogResult>();

                List <CallLogDb> dbList;
                if (cr.NumOfRecords > 0)
                {
                    dbList = query.OrderByDescending(det => det.StartTime).Skip(cr.StartIndex).Take(cr.NumOfRecords).ToList();
                }
                else
                {
                    dbList = query.ToList();
                }

                foreach (var call in dbList)
                {
                    var result = new SearchCallLogResult();
                    Mapper.Map <CallLogDb, SearchCallLogResult>(call, result);
                    list.Add(result);
                }

                return(list);
            }
        }
コード例 #2
0
ファイル: CallLogDal.cs プロジェクト: quyentruc54/HeThongSSCD
        private static IQueryable <CallLogDb> BuildCallLogSearchQuery(SearchCallLogCriteria cr, NovaAlertContext ctx)
        {
            var query = ctx.CallLogDbs.Include("Details").Where(c => c.DeletedDate == null);

            if (cr.CallType > 0)
            {
                query = query.Where(c => c.CallType == cr.CallType);
            }

            if (cr.ChannelId.HasValue)
            {
                query = query.Where(c => c.Details.Any(det => det.ChannelId == cr.ChannelId.Value));
            }

            if (!string.IsNullOrEmpty(cr.UnitName))
            {
                query = query.Where(c => c.Details.Any(det => det.UnitName != null && det.UnitName.Contains(cr.UnitName)));
            }

            if (cr.StartDate.HasValue)
            {
                query = query.Where(c => SqlFunctions.DateDiff("day", c.StartTime, cr.StartDate.Value) <= 0);
            }

            if (cr.EndDate.HasValue)
            {
                query = query.Where(c => SqlFunctions.DateDiff("day", c.StartTime, cr.EndDate.Value) >= 0);
            }
            return(query);
        }
コード例 #3
0
ファイル: CallLogDal.cs プロジェクト: quyentruc54/HeThongSSCD
        public uint Count(SearchCallLogCriteria cr)
        {
            if (!cr.CanSearch())
            {
                return(0);
            }

            using (var ctx = new NovaAlertContext())
            {
                var query = BuildCallLogSearchQuery(cr, ctx);

                return((uint)query.Count());
            }
        }
コード例 #4
0
 uint INovaAlertConfigService.CountCallLog(SearchCallLogCriteria cr)
 {
     return(CallLogDal.Instance.Count(cr));
 }
コード例 #5
0
 List <SearchCallLogResult> INovaAlertConfigService.SearchCallLog(SearchCallLogCriteria cr)
 {
     return(CallLogDal.Instance.Search(cr));
 }
コード例 #6
0
 public CallLogSearchContract(SearchCallLogCriteria cr)
 {
     this.Criteria = cr;
 }