Exemple #1
0
        public DomainSettingsModel(string concern, string operation, PatternDirectoryType patternType, GroupByType groupBy)
        {
            var solutionFile = Directory.GetFiles(Directory.GetCurrentDirectory(), "*.sln").FirstOrDefault();

            var solutionInfo = SolutionFile.Parse(solutionFile);

            var projectList = solutionInfo.ProjectsInOrder;

            foreach (var proj in projectList)
            {
                if (!proj.ProjectName.Contains(".Logic") &&
                    !proj.ProjectName.Contains(".Domain"))
                {
                    continue;
                }

                Concern     = concern;
                Operation   = operation;
                PatternType = patternType;

                ProjectName        = proj.RelativePath;
                DomainName         = proj.ProjectName;
                DomainAbsolutePath = ResolveDomainAbsolutePath(proj.AbsolutePath);
                PatternFileType    = PatternFileNameResolver.Resolve(patternType);
                ClassName          = $"{concern}{operation}{PatternFileNameResolver.Resolve(patternType)}";
                GroupingStrategy   = groupBy;
            }

            LogUtility.Info($"ProjectName: {ProjectName}");
            LogUtility.Info($"DomainName: {DomainName}");
            LogUtility.Info($"DomainAbsolutePath: {DomainAbsolutePath}");
        }
        public DomainSettingsModel(string concern, string operation, PatternDirectoryType patternType, GroupByType groupBy)
        {
            var solutionFile = Directory.GetFiles(Directory.GetCurrentDirectory(), "*.sln").FirstOrDefault();
            var solutionInfo = SolutionFile.Parse(solutionFile);

            var projectList = solutionInfo.ProjectsInOrder;

            var proj =
                projectList.FirstOrDefault(x => x.ProjectName.Equals("Logic") || x.ProjectName.Equals("Domain"));

            if (proj == null)
            {
                throw new Exception("Missing domain or logic project in solution");
            }


            Concern     = concern;
            Operation   = operation;
            PatternType = patternType;

            ProjectName        = proj.RelativePath;
            DomainName         = proj.ProjectName;
            DomainAbsolutePath = ResolveDomainAbsolutePath(proj.AbsolutePath);
            PatternFileType    = PatternFileNameResolver.Resolve(patternType);
            ClassName          = $"{concern}{operation}{PatternFileNameResolver.Resolve(patternType)}";
            GroupingStrategy   = groupBy;

            //LogUtility.Info($"ProjectName: {ProjectName}");
            //LogUtility.Info($"DomainName: {DomainName}");
            //LogUtility.Info($"DomainAbsolutePath: {DomainAbsolutePath}");
        }
 public static IOnConfiguration Configure(string concern, string operation, PatternDirectoryType patternType, GroupByType groupBy)
 => new ClassAssembler(concern, operation, patternType, groupBy);
 public ClassAssembler(string concern, string operation, PatternDirectoryType patternType, GroupByType groupBy)
 {
     _settings      = new DomainSettingsModel(concern, operation, patternType, groupBy);
     _syntaxFactory = SyntaxFactory.CompilationUnit();
 }
 public static PatternFileType Resolve(PatternDirectoryType dirType) =>
 dirType switch
 {