示例#1
0
        public IQueryable <Models.Presentation.ReportsViewModel> Post([FromBody] Models.Presentation.SearchCriteria value)
        {
            var reports = from r in this._db.IncidentReports
                          join u in this._db.Users
                          on r.userId equals u.userId
                          join p in this._db.IncidentPrograms
                          on r.programId equals p.incidentProgramId
                          join s in this._db.ReportStatuses
                          on r.statusId equals s.reportStatusId
                          where r.clientName.Contains(value.clientName) &&
                          r.incidentDate >= value.startDate &&
                          r.incidentDate <= value.endDate
                          select new Models.Presentation.ReportsViewModel
            {
                incidentId    = r.incidentId,
                createdByName = u.lastName + ", " + u.firstName,
                clientName    = r.clientName,
                programTitle  = p.programTitle,
                incidentDate  = r.incidentDate,
                isApproximate = r.isApproximate,
                createdStamp  = r.createdStamp,
                lastModified  = r.lastModified,
                statusId      = r.statusId,
                currentStatus = s.reportStatusText
            };



            return(reports);
        }
        public IQueryable <Models.Presentation.SearchResults> Search([FromBody] Models.Presentation.SearchCriteria value)
        {
            bool isIncidentsAdmin = User.IsInRole(@"MAIN\IncidentAdmins");

            if (isIncidentsAdmin)
            {
                var reports = from r in this._db.IncidentReports
                              join s in this._db.ReportStatus
                              on r.statusId equals s.reportStatusId
                              join p in this._db.IncidentPrograms
                              on r.programId equals p.incidentProgramId
                              where
                              r.clientName.Contains(value.clientName) &&
                              r.createdStamp >= value.startDate &&
                              r.createdStamp <= value.endDate
                              select new Models.Presentation.SearchResults
                {
                    incidentId       = r.incidentId,
                    incidentDate     = r.incidentDate,
                    createdStamp     = r.createdStamp,
                    clientName       = r.clientName,
                    staffName        = r.staffName,
                    statusId         = r.statusId,
                    reportStatusText = s.reportStatusText,
                    programTitle     = p.programTitle,
                    incidentLocation = r.incidentLocation
                };

                return(reports);
            }
            else
            {
                var reports = from r in this._db.IncidentReports
                              join s in this._db.ReportStatus
                              on r.statusId equals s.reportStatusId
                              join p in this._db.IncidentPrograms
                              on r.programId equals p.incidentProgramId
                              where
                              r.clientName.Contains(value.clientName) &&
                              r.createdStamp >= value.startDate &&
                              r.createdStamp <= value.endDate &&
                              r.userId == value.userId
                              select new Models.Presentation.SearchResults
                {
                    incidentId       = r.incidentId,
                    incidentDate     = r.incidentDate,
                    createdStamp     = r.createdStamp,
                    clientName       = r.clientName,
                    staffName        = r.staffName,
                    statusId         = r.statusId,
                    reportStatusText = s.reportStatusText,
                    programTitle     = p.programTitle,
                    incidentLocation = r.incidentLocation
                };

                return(reports);
            }
        }