public ActionResult Index(int?isActive, int?isArchived, string sortBy, string sortOrder) { var model = new ProjectIndexModel(); model.Tab = "Project"; model.IsActive = isActive ?? -1; model.IsArchived = isArchived ?? 0; model.SortBy = sortBy ?? "Name"; model.SortOrder = sortOrder ?? "ASC"; model.SortableColumns.Add("Name", "Name"); var criteria = new ProjectCriteria() { IsActive = DataHelper.ToBoolean(isActive, true), IsArchived = DataHelper.ToBoolean(isArchived, false) }; var projects = ProjectService.ProjectFetchInfoList(criteria) .AsQueryable(); projects = projects.OrderBy(string.Format("{0} {1}", model.SortBy, model.SortOrder)); model.Projects = projects; var notes = NoteService.NoteFetchInfoList( SourceType.Project, projects.Select(project => project.ProjectId).ToArray()); model.Notes = notes.AsQueryable(); return(this.View(model)); }
public async Task <IActionResult> GetProjects([FromQuery] ProjectCriteria criteria) { if (!await _permissionService.HasGlobalPermissionAsync(Permission.Read)) { return(StatusCode(403, "You have no permission to view projects.")); } return(Ok(await _projectService.GetProjectsAsync(criteria))); }
public ActionResult Index(ProjectCriteria projectCriteria) { IPagedList <Project> projects = _projectService.Search(projectCriteria); var searchView = new IndexPageViewModel { ProjectCriteria = projectCriteria, Projects = projects }; return(View(searchView)); }
public IPagedList <Project> Search(ProjectCriteria a) { using (var unitOfWork = new UnitOfWork(new PimContext())) { var query = unitOfWork.Project.Get(); if (!string.IsNullOrEmpty(a.Text)) { query = query.Where(p => p.Name.Contains(a.Text) || p.Customer.Contains(a.Text) || p.ProjectNumber.ToString().Contains(a.Text)); } if (a.Status.HasValue) { query = query.Where(p => p.Status == a.Status); } bool descending = (a.SortDirection == SortDirection.Descending); query = GetSortedData(query, a.SortProperty, descending); return(query.ToPagedList(a.Page, a.ItemsPerPage)); } }
public void SearchProjects() { // search by text && status match ProjectCriteria textStatus = new ProjectCriteria { Text = "c3", Status = Status.Finished }; IEnumerable <Project> textStatusList = _service.Search(textStatus); Assert.IsTrue(textStatusList.Any()); // search by text && status => expect empty list mismatch text status ProjectCriteria invalidTextStatus = new ProjectCriteria { Text = "c3", Status = Status.New }; IEnumerable <Project> invalidTextStatusList = _service.Search(invalidTextStatus); Assert.IsTrue(!invalidTextStatusList.Any()); //search by text ProjectCriteria textOnly = new ProjectCriteria { Text = "c3" }; IEnumerable <Project> textOnlyList = _service.Search(textOnly); Assert.IsTrue(textOnlyList.Any()); //search by status ProjectCriteria status = new ProjectCriteria { Status = Status.New }; IEnumerable <Project> statusList = _service.Search(status); Assert.IsTrue(statusList.Any()); //empty criteria ProjectCriteria noCriteria = new ProjectCriteria(); IEnumerable <Project> noCriteriaList = _service.Search(noCriteria); Assert.IsTrue(noCriteriaList.Any()); }
// TODO: View: Search results for project public ActionResult Index(ProjectCriteria c) { ProjectService service = new ProjectService(); return(View(service.Search(c))); }
public static ProjectInfoList ProjectFetchInfoList(ProjectCriteria criteria) { return(ProjectInfoList.FetchProjectInfoList(criteria)); }