Exemple #1
0
        public IEnumerable <OfficerAttendanceTrackModel> OfficerTracks(long stime, long etime,
                                                                       params string[] officerIds)
        {
            var trackHandler = new OfficerTrackHandle(Repository);
            var stHandler    = new StationHandle(Repository);
            var ids          = officerIds.Where(t => !string.IsNullOrWhiteSpace(t)).ToArray();

            var noDel = (short)DeleteStatus.No;
            var query =
                from track in trackHandler.All(null)
                join sta in stHandler.All(t => t.IsDel == noDel) on track.SiteId equals sta.SiteId into stas
                from site in stas.DefaultIfEmpty(new Station {
            })
                select new { track = track, site = site };

            query = query.Where(t => t.track.UpTime >= stime && t.track.UpTime <= etime);
            if (ids.Length > 0)
            {
                query = query.Where(t => ids.Any(x => t.track.OfficerId == x));
            }

            var items =
                query.OrderBy(t => t.track.OfficerId).OrderByDescending(t => t.track.UpTime).ToArray()
                .Select(t => new OfficerAttendanceTrackModel {
                station = t.site, track = t.track
            });

            return(items);
        }
        public IEnumerable <OfficerTrackModel> Page(string pattern, int page, int size, out int count)
        {
            var orcHandler = new OfficerHandle(Repository);
            var orgHandler = new OrganizationHandle(Repository);
            var trkHandler = new OfficerTrackHandle(Repository);
            var noDel      = (short)DeleteStatus.No;
            var query      =
                from trk in trkHandler.All(null)
                join ocr in orcHandler.All(t => t.IsDel == noDel) on trk.OfficerId equals ocr.Id
                join org in orgHandler.All(t => t.IsDel == noDel) on ocr.OrgId equals org.Id
                select new { track = trk, officer = ocr, org = org };

            if (!string.IsNullOrWhiteSpace(pattern))
            {
                query = query.Where(t => t.officer.Name.Contains(pattern) || t.officer.IdentyCode.Contains(pattern));
            }

            if (!User.IsSupperAdministrator)
            {
                var orgId = User.Organization.Id;
                query = query.Where(t => t.officer.OrgId == orgId);
            }

            count = query.Count();
            var skipCount = (page - 1) * size;
            var items     = query.OrderByDescending(t => t.track.UpTime).Skip(skipCount).Take(size).ToArray()
                            .Select(t => new OfficerTrackModel
            {
                officer = t.officer,
                org     = t.org,
                track   = t.track
            });

            return(items);
        }
        private void UpgradeOfficerTrack(UpLoadDataPackage data, Officer officer, string preSiteId)
        {
            var track = new OfficerMoveTrail {
                OfficerId = officer.Id, PreSiteId = preSiteId, SiteId = data.SiteId, UpTime = data.TTime
            };
            var handler = new OfficerTrackHandle(Repository);

            handler.Add(track);
        }
 public OfficerTrackModule(UserInfo user) : base(user)
 {
     Handler = new OfficerTrackHandle(Repository);
 }