public IHttpActionResult Get([FromUri] string type, [FromUri] PagedQueryDTO pagedQueryDto) { //Only admins can see logs of other users if (!pagedQueryDto.IsCurrentUser && !HasManageUserPrivilege()) { return(new StatusCodeResult(HttpStatusCode.Forbidden, Request)); } type = (type ?? string.Empty).Trim().ToLower(); using (var uow = _uowFactory.Create()) { if (type == "incidents") { var result = _report.GetIncidents(uow, pagedQueryDto); return(Ok(result)); } else if (type == "facts") { var result = _report.GetFacts(uow, pagedQueryDto); return(Ok(result)); } else { return(BadRequest("Specified report type is not supported")); } } }
public IHttpActionResult GetByQuery([FromUri] PagedQueryDTO pagedQuery) { using (var uow = ObjectFactory.GetInstance <IUnitOfWork>()) { var results = _containerService.GetByQuery(_security.GetCurrentAccount(uow), pagedQuery); return(Ok(results)); } }
private void ValidateInputQuery(ref PagedQueryDTO pagedQueryDto) { //lets make sure our inputs are correct pagedQueryDto = pagedQueryDto ?? new PagedQueryDTO(); pagedQueryDto.Page = pagedQueryDto.Page ?? 1; pagedQueryDto.Page = pagedQueryDto.Page < 1 ? 1 : pagedQueryDto.Page; pagedQueryDto.ItemPerPage = pagedQueryDto.ItemPerPage ?? DEFAULT_HISTORY_PAGE_SIZE; pagedQueryDto.ItemPerPage = pagedQueryDto.ItemPerPage < MIN_HISTORY_PAGE_SIZE ? MIN_HISTORY_PAGE_SIZE : pagedQueryDto.ItemPerPage; }
private PagedQueryDTO ValidateInputQuery(PagedQueryDTO pagedQueryDto) { //lets make sure our inputs are correct pagedQueryDto = pagedQueryDto ?? new PagedQueryDTO(); pagedQueryDto.Page = pagedQueryDto.Page ?? 1; pagedQueryDto.Page = pagedQueryDto.Page < 1 ? 1 : pagedQueryDto.Page; pagedQueryDto.ItemPerPage = pagedQueryDto.ItemPerPage ?? DefaultPageSize; pagedQueryDto.ItemPerPage = pagedQueryDto.ItemPerPage < MinPageSize ? MinPageSize : pagedQueryDto.ItemPerPage; return(pagedQueryDto); }
public PagedResultDTO <T> GetHistory <T, TS>(IUnitOfWork uow, PagedQueryDTO pagedQueryDto, IQueryable <TS> historyQuery) where T : HistoryItemDTO where TS : HistoryItemDO { ValidateInputQuery(ref pagedQueryDto); //get the current account var curAccount = _security.GetCurrentAccount(uow); var filteredResult = FilterHistoryItems(historyQuery, pagedQueryDto, curAccount); var totalItemCountForCurrentCriterias = filteredResult.Count(); filteredResult = filteredResult.Page(pagedQueryDto.Page.Value, pagedQueryDto.ItemPerPage.Value); return(new PagedResultDTO <T>() { Items = filteredResult.ToList().Select(Mapper.Map <T>).ToList(), CurrentPage = pagedQueryDto.Page.Value, TotalItemCount = totalItemCountForCurrentCriterias }); }
public PagedResultDTO <ContainerDTO> GetByQuery(Fr8AccountDO account, PagedQueryDTO query) { if (account.Id == null) { throw new ApplicationException("UserId must not be null"); } query = ValidateInputQuery(query); using (var uow = _uowFactory.Create()) { var result = uow.ContainerRepository.GetQuery().Where(x => x.Plan.Fr8AccountId == account.Id); result = ApplyFilter(result, query); var totalItemCount = result.Count(); result = ApplySort(result, query); result = result.Page(query.Page.Value, query.ItemPerPage.Value); return(new PagedResultDTO <ContainerDTO> { CurrentPage = query.Page.Value, Items = result.AsEnumerable().Select(Mapper.Map <ContainerDTO>).ToList(), TotalItemCount = totalItemCount }); } }
private IQueryable <T> FilterHistoryItems <T>(IQueryable <T> historyQuery, PagedQueryDTO pagedQueryDto, Fr8AccountDO curAccount) where T : HistoryItemDO { if (pagedQueryDto.IsCurrentUser) { historyQuery = historyQuery.Where(i => i.Fr8UserId == curAccount.Id); } if (!string.IsNullOrEmpty(pagedQueryDto.Filter)) { historyQuery = historyQuery.Where(c => c.Data.Contains(pagedQueryDto.Filter) || c.ObjectId.Contains(pagedQueryDto.Filter) || c.Activity.Contains(pagedQueryDto.Filter) || c.Component.Contains(pagedQueryDto.Filter) || c.Fr8UserId.Contains(pagedQueryDto.Filter) ); } var isDescending = pagedQueryDto.OrderBy?.StartsWith("-") ?? false; historyQuery = isDescending ? historyQuery.OrderByDescending(p => p.CreateDate) : historyQuery.OrderBy(p => p.CreateDate); return(historyQuery); }
public PagedResultDTO <FactDTO> GetFacts(IUnitOfWork uow, PagedQueryDTO pagedQueryDto) { return(GetHistory <FactDTO, FactDO>(uow, pagedQueryDto, uow.FactRepository.GetQuery())); }
public PagedResultDTO <IncidentDTO> GetIncidents(IUnitOfWork uow, PagedQueryDTO pagedQueryDto) { return(GetHistory <IncidentDTO, IncidentDO>(uow, pagedQueryDto, uow.IncidentRepository.GetQuery())); }
private IQueryable <ContainerDO> ApplyFilter(IQueryable <ContainerDO> resultQuery, PagedQueryDTO queryParameters) { if (string.IsNullOrWhiteSpace(queryParameters.Filter)) { return(resultQuery); } return(resultQuery.Where(x => x.Name.Contains(queryParameters.Filter) || x.Plan.Name.Contains(queryParameters.Filter) || x.ContainerStateTemplate.Name.Contains(queryParameters.Filter))); }
private IQueryable <ContainerDO> ApplySort(IQueryable <ContainerDO> resultQuery, PagedQueryDTO queryParameters) { if (string.IsNullOrWhiteSpace(queryParameters.OrderBy)) { return(resultQuery); } var isDescending = queryParameters.OrderBy.StartsWith("-"); if (queryParameters.OrderBy.StartsWith("-") || queryParameters.OrderBy.StartsWith("+")) { queryParameters.OrderBy = queryParameters.OrderBy.Remove(0, 1); } queryParameters.OrderBy = queryParameters.OrderBy.ToLower(); switch (queryParameters.OrderBy) { case "createDate": return(isDescending ? resultQuery.OrderByDescending(x => x.CreateDate) : resultQuery.OrderBy(x => x.CreateDate)); case "name": return(isDescending ? resultQuery.OrderByDescending(x => x.Name) : resultQuery.OrderBy(x => x.Name)); case "state": return(isDescending ? resultQuery.OrderByDescending(x => x.ContainerStateTemplate.Name) : resultQuery.OrderBy(x => x.ContainerStateTemplate.Name)); default: return(isDescending ? resultQuery.OrderByDescending(x => x.LastUpdated) : resultQuery.OrderBy(x => x.LastUpdated)); } }