Example #1
0
        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);
        }
Example #2
0
        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;
        }
Example #3
0
        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();
 }