Exemplo n.º 1
0
        private string GetCsCode(SpecificType currentType)
        {
            if (string.IsNullOrEmpty(currentType.TypeName))
            {
                return(string.Empty);
            }

            SchemaDotOrgProperty[] properties = GetProperties(currentType.TypeName);

            StringBuilder result = new StringBuilder();

            result.AppendLine("using Bam.Net.Schema.Org.DataTypes;");
            result.AppendLine();
            result.AppendLine("namespace Bam.Net.Schema.Org.Things");
            result.AppendLine("{");
            result.AppendFormat("\t///<summary>{0}</summary>\r\n", GetTypeDescription(currentType.TypeName));
            result.AppendFormat("\tpublic class {0}", currentType.ClassName);
            if (!string.IsNullOrEmpty(currentType.Extends))
            {
                result.AppendFormat(": {0}", currentType.Extends);
            }
            result.AppendLine();
            result.AppendLine("\t{");
            foreach (SchemaDotOrgProperty prop in properties)
            {
                result.AppendFormat("\t\t///<summary>{0}</summary>\r\n", prop.Description);
                result.AppendFormat("\t\tpublic {0} {1} {{get; set;}}\r\n", prop.ExpectedType, prop.Name.PrefixWithUnderscoreIfStartsWithNumber().PascalCase());
            }
            result.AppendLine("\t}");
            result.AppendLine("}");

            return(result.ToString());
        }
Exemplo n.º 2
0
        private HashSet <SpecificType> GetTypes()
        {
            HashSet <SpecificType> results = new HashSet <SpecificType>();
            Queue <SpecificType>   queue   = new Queue <SpecificType>();
            SpecificType           thing   = new SpecificType {
                TypeName = "Thing", Extends = "DataType"
            };

            results.Add(thing);
            queue.Enqueue(thing);

            while (queue.Count > 0)
            {
                OutLine($"Queue count is {queue.Count}", ConsoleColor.Yellow);
                SpecificType currentType = queue.Dequeue();
                OutLine($"Getting sub types for {currentType.TypeName}", ConsoleColor.Cyan);
                List <SpecificType> subTypes = GetSubTypes(currentType.TypeName).ToList();
                OutLine($"Found {subTypes.Count} sub types", ConsoleColor.Blue);
                subTypes.ForEach(subType =>
                {
                    queue.Enqueue(subType);
                    results.Add(subType);
                    OutLine($"\t{subType.TypeName} extends {subType.Extends}", ConsoleColor.DarkCyan);
                });
            }

            return(results);
        }
Exemplo n.º 3
0
        public override bool Equals(object obj)
        {
            SpecificType type = obj as SpecificType;

            if (type == null)
            {
                return(false);
            }

            return(ToString().Equals(type.ToString()));
        }
Exemplo n.º 4
0
        private void WriteCsCode(SpecificType currentType)
        {
            OutLine($"Writing code for {currentType.TypeName}: {currentType.Extends}", ConsoleColor.Cyan);
            int    num;
            string specified = $"C:\\Schema.org\\{currentType.TypeName.LettersOnly()}.cs";
            string path      = specified.GetNextFileName(out num);

            if (num > 0)
            {
                currentType.ClassName = $"{currentType.ClassName}_{num}";
            }
            string code = GetCsCode(currentType);

            TryWrite(code, path);
        }