public IHttpActionResult GetPageForLoggedEmployee([FromUri] PageQuery query, string id = "", PackageStatusFilter status = PackageStatusFilter.All, string employeeId = "") { var packages = context.Set <Package>().AsQueryable(); var userId = User.Identity.GetUserId(); var employee = context.Employees.AsQueryable().FirstOrDefault(e => e.User.Id == userId); if (employee != null) { packages = employee.Packages.AsQueryable(); } packages = ApplyFilters(packages, id, status); var dtos = packages.ProjectTo <PackageDto>(); return(Ok(PagingHelper.GetPagedResult(dtos, query))); }
public IHttpActionResult GetPage([FromUri] PageQuery query, string id = "", PackageStatusFilter status = PackageStatusFilter.All, string employeeId = "") { var packages = context.Set<Package>().AsQueryable(); if (!string.IsNullOrEmpty(employeeId)) { int numericEmployeeId; if (int.TryParse(employeeId, out numericEmployeeId)) { var employee = context.Employees.Find(numericEmployeeId); if (employee != null) { packages = employee.Packages.AsQueryable(); } } } packages = ApplyFilters(packages, id, status); var dtos = packages.ProjectTo<PackageDto>(); return Ok(PagingHelper.GetPagedResult(dtos, query)); }
public IHttpActionResult GetPage([FromUri] PageQuery query, string id = "", PackageStatusFilter status = PackageStatusFilter.All, string employeeId = "") { var packages = context.Set <Package>().AsQueryable(); if (!string.IsNullOrEmpty(employeeId)) { int numericEmployeeId; if (int.TryParse(employeeId, out numericEmployeeId)) { var employee = context.Employees.Find(numericEmployeeId); if (employee != null) { packages = employee.Packages.AsQueryable(); } } } packages = ApplyFilters(packages, id, status); var dtos = packages.ProjectTo <PackageDto>(); return(Ok(PagingHelper.GetPagedResult(dtos, query))); }
private IQueryable <Package> ApplyFilters(IQueryable <Package> source, string id, PackageStatusFilter status) { var result = source; if (!string.IsNullOrEmpty(id)) { result = result.Where(p => p.Id.ToString().StartsWith(id)); } if (status == PackageStatusFilter.InDelivery) { result = result.Where(p => p.Status == PackageStatus.InDelivery || p.Status == PackageStatus.NoticeLeft); } else if (status == PackageStatusFilter.Delivered) { result = result.Where(p => p.Status == PackageStatus.Delivered); } else if (status == PackageStatusFilter.New) { result = result.Where(p => p.Status == PackageStatus.InWarehouse || p.Status == PackageStatus.AtClientsLocation); } else if (status == PackageStatusFilter.ToPickUp) { result = result.Where(p => p.Status == PackageStatus.ToPickUp); } return(result); }
private IQueryable<Package> ApplyFilters(IQueryable<Package> source, string id, PackageStatusFilter status) { var result = source; if (!string.IsNullOrEmpty(id)) { result = result.Where(p => p.Id.ToString().StartsWith(id)); } if (status == PackageStatusFilter.InDelivery) { result = result.Where(p => p.Status == PackageStatus.InDelivery || p.Status == PackageStatus.NoticeLeft); } else if (status == PackageStatusFilter.Delivered) { result = result.Where(p => p.Status == PackageStatus.Delivered); } else if (status == PackageStatusFilter.New) { result = result.Where(p => p.Status == PackageStatus.InWarehouse || p.Status == PackageStatus.AtClientsLocation); } else if (status == PackageStatusFilter.ToPickUp) { result = result.Where(p => p.Status == PackageStatus.ToPickUp); } return result; }
public IHttpActionResult GetPageForLoggedEmployee([FromUri] PageQuery query, string id = "", PackageStatusFilter status = PackageStatusFilter.All, string employeeId = "") { var packages = context.Set<Package>().AsQueryable(); var userId = User.Identity.GetUserId(); var employee = context.Employees.AsQueryable().FirstOrDefault(e => e.User.Id == userId); if (employee != null) { packages = employee.Packages.AsQueryable(); } packages = ApplyFilters(packages, id, status); var dtos = packages.ProjectTo<PackageDto>(); return Ok(PagingHelper.GetPagedResult(dtos, query)); }