private Client GetClient(int id, ProjectSortType sortype) { var client = Mapper.Map <Models.Client.Client>(_clientManager.GetClient(id)); //client.QuoteList = _clientManager.GetQuotes(id) // .Select(i => Mapper.Map<Quote>(i)) // .ToList(); var projectManager = new ProjectManager(); client.ProjectList = projectManager.GetProjectSummaries(id) .Select(i => Mapper.Map <Models.Project.ProjectSummary>(i)) .ToList(); client.JobYears = projectManager.GetJobYears() .Select(i => Mapper.Map <Models.Project.JobYear>(i)) .ToList(); client.CurrentJobYearId = client.JobYears.FirstOrDefault(i => i.Year == DateTime.Today.Year)?.JobYearId; client.ProjectTypes = projectManager.GetProjectTypes() .Select(i => Mapper.Map <Models.Project.ProjectType>(i)) .ToList(); client.QuoteList = new QuoteManager().GetQuotes(id) .Select(i => Mapper.Map <Models.Quote.Quote>(i)) .OrderByDescending(i => i.LastUpdatedDate) .ToList(); switch (sortype) { default: case ProjectSortType.Default: case ProjectSortType.Recent: client.ProjectList = client.ProjectList.OrderByDescending(i => i.LastHoursLogged).ToList(); break; case ProjectSortType.BilledHours: client.ProjectList = client.ProjectList.OrderByDescending(i => i.TotalHours).ToList(); break; } return(client); }
public static int Sort(ProjectDescription p1, ProjectDescription p2, ProjectSortType sortType) { int ret = 0; if (p1 == null && p2 == null) { ret = 0; } else if (p1 == null) { ret = -1; } else if (p2 == null) { ret = 1; } else { switch (sortType) { case ProjectSortType.SortByName: { ret = String.Compare (p1.Title, p2.Title); if (ret == 0) { ret = -DateTime.Compare (p1.MatchDate, p2.MatchDate); } break; } case ProjectSortType.SortByDate: { ret = -DateTime.Compare (p1.MatchDate, p2.MatchDate); if (ret == 0) { ret = String.Compare (p1.Title, p2.Title); } break; } case ProjectSortType.SortByModificationDate: { ret = -DateTime.Compare (p1.LastModified, p2.LastModified); break; } case ProjectSortType.SortBySeason: { ret = String.Compare (p1.Season, p2.Season); if (ret == 0) { ret = String.Compare (p1.Title, p2.Title); } break; } case ProjectSortType.SortByCompetition: { ret = String.Compare (p1.Competition, p2.Competition); if (ret == 0) { ret = String.Compare (p1.Title, p2.Title); } break; } } } return ret; }
static public int Sort(ProjectDescription p1, ProjectDescription p2, ProjectSortType sortType) { int ret = 0; if (p1 == null && p2 == null) { ret = 0; } else if (p1 == null) { ret = -1; } else if (p2 == null) { ret = 1; } else { switch (sortType) { case ProjectSortType.SortByName: { ret = String.Compare(p1.Title, p2.Title); if (ret == 0) { ret = -DateTime.Compare(p1.MatchDate, p2.MatchDate); } break; } case ProjectSortType.SortByDate: { ret = -DateTime.Compare(p1.MatchDate, p2.MatchDate); if (ret == 0) { ret = String.Compare(p1.Title, p2.Title); } break; } case ProjectSortType.SortByModificationDate: { ret = -DateTime.Compare(p1.LastModified, p2.LastModified); break; } case ProjectSortType.SortBySeason: { ret = String.Compare(p1.Season, p2.Season); if (ret == 0) { ret = -DateTime.Compare(p1.MatchDate, p2.MatchDate); } break; } case ProjectSortType.SortByCompetition: { ret = String.Compare(p1.Competition, p2.Competition); if (ret == 0) { ret = -DateTime.Compare(p1.MatchDate, p2.MatchDate); } break; } } } return(ret); }
/// <summary> /// Get all projects assigned to a location /// </summary> /// <param name="location">Location</param> /// <param name="categories">Selected categories</param> /// <param name="sortType">Sort by type</param> /// <param name="sortDirection">Sort by direction</param> /// <returns>Base project query</returns> private IEnumerable<BaseProject> GetAllProjectsByLocationQuery(Location location = null, IList<int> categories = null, ProjectSortType sortType = ProjectSortType.StartDate, ProjectSortDirection sortDirection = ProjectSortDirection.Ascending) { var query = GetAllCachedProjects(); if (location != null) query = query.Where(p => p.Locations.Any(l => l.LocationId == location.Id)); if (categories != null && categories.Count > 0) query = query.Where(p => categories.All(x => p.Categories.Any(c => c.Id == x))); switch (sortDirection) { case ProjectSortDirection.Descending: switch (sortType) { case ProjectSortType.CreatedDate: query = query.OrderByDescending(x => x.CreatedDate); break; case ProjectSortType.Volunteers: query = query.OrderByDescending(x => x.Volunteers.Count); break; default: query = query.OrderByDescending(x => x.StartDate); break; } break; default: switch (sortType) { case ProjectSortType.CreatedDate: query = query.OrderBy(x => x.CreatedDate); break; case ProjectSortType.Volunteers: query = query.OrderBy(x => x.Volunteers.Count); break; default: query = query.OrderBy(x => x.StartDate); break; } break; } return query; }
/// <summary> /// Get all projects assigned to a location /// </summary> /// <param name="location">Location</param> /// <param name="pageIndex">page index</param> /// <param name="pageSize">page size</param> /// <param name="categories">Selected categories</param> /// <param name="sortType">Sort by type</param> /// <param name="sortDirection">Sort by direction</param> /// <returns>Base project collection</returns> public IPaginatedList<Project> GetAllProjectsByLocationPaged(Location location = null, int pageIndex = 0, int pageSize = -1, IList<int> categories = null, ProjectSortType sortType = ProjectSortType.StartDate, ProjectSortDirection sortDirection = ProjectSortDirection.Ascending) { // Get the base projects var baseProjects = GetAllProjectsByLocationQuery(location, categories, sortType, sortDirection); var query = from p in _projectRepository.Table join b in baseProjects on p.Id equals b.Id orderby 1 ascending // needs order to paginate select p; var projects = new PaginatedList<Project>(query, pageIndex, pageSize); return projects; }
/// <summary> /// Get all projects assigned to a location /// </summary> /// <param name="location">Location</param> /// <param name="categories">Selected categories</param> /// <param name="sortType">Sort by type</param> /// <param name="sortDirection">Sort by direction</param> /// <returns>Base project collection</returns> public IList<BaseProject> GetAllProjectsByLocation(Location location = null, IList<int> categories = null, ProjectSortType sortType = ProjectSortType.StartDate, ProjectSortDirection sortDirection = ProjectSortDirection.Ascending) { return GetAllProjectsByLocationQuery(location, categories, sortType, sortDirection).ToList(); }