private IQueryable <Application> BuildQueryForAdministrator(ApplicationsFilter filter) { var query = UnitOfWork.Repository <IApplicationRepository>().GetAll(true); if (filter.State.HasValue) { if (filter.State.Value != ApplicationState.Deleted) { query = query.Where(app => !app.IsDeleted); } query = query.Where(app => app.State == filter.State.Value); } else { query = query.Where(app => !app.IsDeleted); } if (filter.CreatedFrom.HasValue) { query = query.Where(app => app.Created >= filter.CreatedFrom.Value); } if (filter.CreatedTo.HasValue) { query = query.Where(app => app.Created <= filter.CreatedTo.Value); } return(query.OrderByDescending(app => app.Created)); }
private IQueryable <Application> BuildQueryForCarService(ApplicationsFilter filter, string currentUserId) { var query = UnitOfWork.Repository <IApplicationRepository>().GetAll(true) .Where(app => !app.IsDeleted && app.Service != null && app.Service.ApplicationUser.Id == currentUserId); if (filter.State.HasValue) { query = query.Where(app => app.State == filter.State.Value); } if (filter.CreatedFrom.HasValue) { query = query.Where(app => app.Created >= filter.CreatedFrom.Value); } if (filter.CreatedTo.HasValue) { query = query.Where(app => app.Created <= filter.CreatedTo.Value); } return(query.OrderByDescending(app => app.Created)); }
public CollectionResult <ApplicationShortInfoForServiceDto> GetApplicationsForService(ApplicationsFilter filter, string currentUserId) { UserManager.IsUserInCarServiceRole(currentUserId); if (filter == null) { filter = new ApplicationsFilter { CurrentPage = Common.Constants.FilterConstants.DefaultCurrentPage, ItemsPerPage = Common.Constants.FilterConstants.DefaultItemsPerPage }; } var result = Paginate(filter.CurrentPage, filter.ItemsPerPage, BuildQueryForCarService(filter, currentUserId), out var itemsCount) .ToList() .Select(item => { var dto = Mapper.Map <ApplicationShortInfoForServiceDto>(item); dto.OfferId = item.Offers.FirstOrDefault(of => !of.IsDeleted && of.Service.ApplicationUser.Id == currentUserId)?.Id; dto.WorkClasses = item.WorkTypes .GroupBy(y => y.Class.Name) .Select(y => new WorkClassDto { Name = y.Key, Types = Mapper.Map <IEnumerable <WorkTypeDto> >(y.ToList()) }) .ToList(); return(dto); }); return(new CollectionResult <ApplicationShortInfoForServiceDto> { ItemsCount = itemsCount, CurrentPage = filter.CurrentPage, ItemsPerPage = filter.ItemsPerPage, Items = result }); }
public CollectionResult <ApplicationShortInfoForAdministratorDto> GetApplicationsForAdministrator(ApplicationsFilter filter, string currentUserId) { UserManager.IsUserInAdministrationRole(currentUserId); if (filter == null) { filter = new ApplicationsFilter { CurrentPage = Common.Constants.FilterConstants.DefaultCurrentPage, ItemsPerPage = Common.Constants.FilterConstants.DefaultItemsPerPage }; } var result = Paginate(filter.CurrentPage, filter.ItemsPerPage, BuildQueryForAdministrator(filter), out var itemsCount) .ToList() .Select(x => { var dto = Mapper.Map <ApplicationShortInfoForAdministratorDto>(x); dto.WorkClasses = x.WorkTypes .GroupBy(y => y.Class.Name) .Select(y => new WorkClassDto { Name = y.Key, Types = Mapper.Map <IEnumerable <WorkTypeDto> >(y.ToList()) }) .ToList(); return(dto); }); return(new CollectionResult <ApplicationShortInfoForAdministratorDto> { ItemsCount = itemsCount, CurrentPage = filter.CurrentPage, ItemsPerPage = filter.ItemsPerPage, Items = result }); }
private IQueryable <Application> BuildQueryForUser(ApplicationsFilter filter, string currentUserId) { var query = UnitOfWork.Repository <IApplicationRepository>().GetAll(true) .Include(app => app.WorkTypes) .Where(app => app.Car.User.ApplicationUser.Id == currentUserId); if (filter.State.HasValue) { if (filter.State.Value != ApplicationState.Deleted) { query = query.Where(app => !app.IsDeleted); } query = query.Where(app => app.State == filter.State.Value); } else { query = query.Where(app => !app.IsDeleted); } if (filter.CreatedFrom.HasValue) { query = query.Where(app => app.Created >= filter.CreatedFrom.Value); } if (filter.CreatedTo.HasValue) { query = query.Where(app => app.Created <= filter.CreatedTo.Value); } if (filter.CarId.HasValue) { query = query.Where(app => app.Car.Id == filter.CarId.Value); } return(query.OrderByDescending(app => app.Created)); }
public IHttpActionResult GetInfosForService(ApplicationsFilter filter) { return(CallBusinessLogicActionWithResult(() => _manager.GetApplicationsForService(filter, User.Identity.GetUserId()))); }