Esempio n. 1
0
        /// <summary>
        /// Creates a collection of entities from a collection go IFiles.
        /// </summary>
        /// <returns>The entities.</returns>
        /// <param name="files">Files.</param>
        public static EntityCollection MakeEntities(IEnumerable <IFile> files)
        {
            EntityCollection entities = new EntityCollection();

            ParallelOptions parallelOptions = new ParallelOptions
            {
                MaxDegreeOfParallelism = 8
            };

            switch (CheckProjectType(files))
            {
            case ProjectType.CSharp:
                CsParser csParser = new CsParser();
                Parallel.ForEach(files.Where(x => Path.GetExtension(x.Path) == ".cs"), parallelOptions, item => {
                    entities.Add(csParser.Parse(item), item.Date.DateTime, item.Revisions);
                });
                break;

            case ProjectType.Unicon:
                IcnParser icnParser = new IcnParser();
                Parallel.ForEach(files.Where(x => Path.GetExtension(x.Path) == ".icn"), parallelOptions, item => {
                    entities.Add(icnParser.Parse(item), item.Date.DateTime, item.Revisions);
                });
                break;

            case ProjectType.Java:
                JavaParser javaParser = new JavaParser();
                Parallel.ForEach(files.Where(x => Path.GetExtension(x.Path) == ".java"), parallelOptions, item => {
                    entities.Add(javaParser.Parse(item), item.Date.DateTime, item.Revisions);
                });
                break;
            }

            return(entities);
        }