public override int Run(string[] args)
        {
            if (args.Length > 1)
            {
                DisplayCommandUsage();

                return(1);
            }

            ProjectType?projectType = null;

            if (args.Length == 1)
            {
                projectType = (ProjectType)Enum.Parse(typeof(ProjectType), args[0], true);
            }

            IProjectInfoRepository projectInfoRepository =
                ObjectFactory.Instance.CreateProjectInfoRepository();

            IEnumerable <IGrouping <ProjectType, ProjectInfo> > projectsByType =
                projectInfoRepository.GetAll()
                .GroupBy(pi => pi.Type)
                .OrderBy(infos => infos.Key);

            int count = projectsByType.Count();
            int index = 0;

            foreach (IGrouping <ProjectType, ProjectInfo> projectGrouping in projectsByType)
            {
                ProjectType currentProjecType = projectGrouping.Key;

                if (!projectType.HasValue || currentProjecType == projectType.Value)
                {
                    OutputWriter.WriteLine("{0}:", currentProjecType);

                    foreach (ProjectInfo projectInfo in projectGrouping)
                    {
                        OutputWriter.WriteLine("  {0}", projectInfo.Name);
                    }
                }

                index++;

                if (!projectType.HasValue && index < count)
                {
                    OutputWriter.WriteLine();
                }
            }

            return(0);
        }
예제 #2
0
        public List <Proxy.Dto.ProjectInfo> GetProjectInfos(Proxy.Dto.ProjectFilter projectFilter)
        {
            if (projectFilter == null)
            {
                throw new ArgumentNullException("projectFilter");
            }

            IEnumerable <ProjectInfo> projectInfos =
                _projectInfoRepository.GetAll();

            if (!string.IsNullOrEmpty(projectFilter.Name))
            {
                projectInfos =
                    projectInfos
                    .Where(pi => !string.IsNullOrEmpty(pi.Name) && pi.Name.IndexOf(projectFilter.Name, StringComparison.CurrentCultureIgnoreCase) > -1);
            }

            return
                (projectInfos
                 .Select(DtoMapper.Map <ProjectInfo, Proxy.Dto.ProjectInfo>)
                 .ToList());
        }
예제 #3
0
 protected List <T> GetProjects <T>()
 {
     return(_projectInfoRepository.GetAll()
            .OfType <T>()
            .ToList());
 }