public async Task <List <Route> > GetAllAsync( UserAvailableRoutes userRoutesModel, int?projectId, bool?active) { if (userRoutesModel == null) { userRoutesModel = new UserAvailableRoutes(); } if (userRoutesModel.ProjectId.HasValue) { projectId = userRoutesModel.ProjectId; } Expression <Func <Route, bool> > filter = x => (!active.HasValue || x.RouteActive == active.Value) && (!projectId.HasValue || x.ProjectRoutes.Any(p => p.ProjectId == projectId.Value)) && (userRoutesModel.RouteIds == null || userRoutesModel.RouteIds.Contains(x.Id)); var result = await FindAsync(filter); SortRoutes(result); return(result); }
public Task <PageResult <Objects> > FindByParamsAsync( string plateNumber, string routeName, int?carTypeId, int?projectId, ModelFormatsEnum format, bool?active, UserAvailableRoutes userRoutesModel, int?carBrandId, int?providerId, int?yearRelease, string blockNumber, int?blockTypeId, string sortBy, OrderByEnum orderBy, int?page, int?pageSize) { var includes = _includesPure; if (format == ModelFormatsEnum.Light) { includes = _includesLight; } else if (format == ModelFormatsEnum.Full) { includes = _includesFull; } var filter = GetSearchFilter( plateNumber, routeName, carTypeId, projectId, active, userRoutesModel, carBrandId, providerId, yearRelease, blockNumber, blockTypeId, sortBy, orderBy); var sortByFilter = GetSortExpression(sortBy); return(FindPagedAsync( filter, sortByFilter, orderBy, page, pageSize, includes)); }
private Expression <Func <Objects, bool> > GetSearchFilter( string plateNumber, string routeName, int?carTypeId, int?projectId, bool?active, UserAvailableRoutes userRoutesModel, int?carBrandId, int?providerId, int?yearRelease, string blockNumber, int?blockTypeId, string sortBy, OrderByEnum orderBy) { var locked = !active; if (userRoutesModel.ProjectId.HasValue) { projectId = userRoutesModel.ProjectId; } if (!string.IsNullOrEmpty(plateNumber)) { plateNumber = plateNumber.ToUpper(); } if (!string.IsNullOrEmpty(routeName)) { routeName = routeName.PrepareRouteName(); } Expression <Func <Objects, bool> > filter = x => (string.IsNullOrEmpty(plateNumber) || x.Name.Contains(plateNumber)) && (!projectId.HasValue || x.ProjectId == projectId) && (!carBrandId.HasValue || x.CarBrandId == carBrandId) && (!providerId.HasValue || x.ProviderId == providerId) && (string.IsNullOrEmpty(routeName) || x.Route.Name.Equals(routeName)) && (!carTypeId.HasValue || x.CarBrand.CarTypeId == carTypeId) && (!locked.HasValue || x.ObjectOutput == locked.Value) && (!yearRelease.HasValue || x.YearRelease == yearRelease) && (string.IsNullOrEmpty(blockNumber) || x.Phone.ToString().Contains(blockNumber) || x.Block.BlockNumber.ToString().Contains(blockNumber)) && (!blockTypeId.HasValue || x.Block.BlockTypeId == blockTypeId) && (userRoutesModel.RouteIds == null || (x.LastRouteId.HasValue && userRoutesModel.RouteIds.Contains(x.LastRouteId.Value))); return(filter); }
public async Task <UserAvailableRoutes> GetAvailableRoutesModel(ClaimsPrincipal userPrincipal) { if (userPrincipal == null || userPrincipal.IsInRole(RoleNames.Administrator) || userPrincipal.IsInRole(RoleNames.Dispatcher)) { return(new UserAvailableRoutes()); } var user = await GetUserAsync(userPrincipal); var result = new UserAvailableRoutes { ProjectId = user.ProjectId, RouteIds = user.RouteIds }; return(result); }
public Task <List <Objects> > FindAllForFileAsync( string plateNumber, string routeName, int?carTypeId, int?projectId, bool?active, UserAvailableRoutes userRoutesModel, int?carBrandId, int?providerId, int?yearRelease, string blockNumber, int?blockTypeId, string sortBy, OrderByEnum orderBy) { var filter = GetSearchFilter( plateNumber, routeName, carTypeId, projectId, active, userRoutesModel, carBrandId, providerId, yearRelease, blockNumber, blockTypeId, sortBy, orderBy); var sortByFilter = GetSortExpression(sortBy); return(FindOrderedAsync( filter, sortByFilter, orderBy, _includesForPrint)); }