Пример #1
0
        public static List <TypeAlias> ParseTypeAliases(AllOptions opts)
        {
            var types = File
                        .ReadAllText(opts.Source)
                        .Split('\n')
                        .Where(s => !string.IsNullOrEmpty(s))
                        .ToList();

            return(types
                   .Select(type => ParseType(type))
                   .Where(ta => !string.IsNullOrEmpty(ta.Modulename))
                   .ToList());

            TypeAlias ParseType(string typeDef)
            {
                var regex = new Regex(@"^type (?<name>\S*) = (?<type>\S*)$");
                var match = regex.Match(typeDef);

                if (match.Success)
                {
                    var propertyName = match.Groups["name"].Value;
                    var propertyType = match.Groups["type"].Value;
                    return(new TypeAlias(opts.Business, opts.Application, opts.Module, propertyName, propertyType));
                }
                return(new TypeAlias(string.Empty, string.Empty, string.Empty, string.Empty, string.Empty));
            }
        }
Пример #2
0
        private static int RunTypesAndReturnExitCode(AllOptions opts)
        {
            var typeAliases = ParseTypeAliases(opts);
            var directories = ProjectStructure.CreateDirectories(opts);

            GenerateTypeAliases(typeAliases, GetOutputDirectory(directories.DomainDirectory));
            GenerateTypeAliasesTests(typeAliases, GetOutputDirectory(directories.TestDirectory));
            return(0);

            string GetOutputDirectory(string directoryName) => $"{opts.OutputDirectory}/{directoryName}";
        }