void Export()
        {
            foreach (var reference in Config.DefaultAssemblyReferences)
            {
                EntityAssemblyReferences.Add(Resolve(reference));
            }

            var csprojFileGenerator = new CsprojFileGenerator
            {
                FileSystem = FileSystem,
                FileNames  = new List <string> {
                    "All.cs"
                },
                NamespaceName    = NamingMap.EntityNamespace,
                IsClientDll      = true,
                ProjectDirectory = Context.NamingMap.EntityProjectDirectory,
                References       = EntityAssemblyReferences
            };

            var csprojFilePath = csprojFileGenerator.Generate();

            MsBuildQueue.Push(csprojFilePath);
        }
示例#2
0
        void WriteSqlInputOutputTypes()
        {
            if (CustomSqlInfo.ResultColumns.Any(r => r.IsReferenceToEntity))
            {
                EntityAssemblyReferences.Add(ReferencedEntityTypeNamingPattern.ReferencedEntityAssemblyPath);
            }

            var resultContractName = NamingMap.ResultClassName;

            if (!CustomSqlInfo.ResultContractIsReferencedToEntity)
            {
                sb.AppendLine();
                sb.AppendLine("/// <summary>");
                sb.AppendLine($"///     Result class of '{CustomSqlInfo.Name}' sql.");
                sb.AppendLine("/// </summary>");
                sb.AppendLine("[Serializable]");
                sb.AppendLine($"public sealed class {resultContractName} : CardContractBase");
                sb.AppendLine("{");
                sb.PaddingCount++;

                foreach (var item in CustomSqlInfo.ResultColumns)
                {
                    sb.AppendLine($"public {item.DataTypeInDotnet} {item.NameInDotnet} {{get; set;}}");
                }

                sb.PaddingCount--;
                sb.AppendLine("}");
            }
            else
            {
                resultContractName = ReferencedEntityTypeNamingPattern.ReferencedEntityAccessPath;
            }

            var interfaceName = $"ICustomSqlProxy<Common.Types.GenericResponse<{resultContractName}>, {resultContractName}>";

            if (CustomSqlInfo.SqlResultIsCollection)
            {
                interfaceName = $"ICustomSqlProxy<Common.Types.GenericResponse<List<{resultContractName}>>, List<{resultContractName}>>";
            }

            sb.AppendLine();
            sb.AppendLine("/// <summary>");
            sb.AppendLine($"///     Parameter class of '{CustomSqlInfo.Name}' sql.");
            sb.AppendLine("/// </summary>");
            sb.AppendLine("[Serializable]");
            sb.AppendLine($"public  class {NamingMap.InputClassName} : {interfaceName}");

            sb.AppendLine("{");
            sb.PaddingCount++;

            foreach (var item in CustomSqlInfo.Parameters)
            {
                sb.AppendLine($"public {item.CSharpPropertyTypeName} {item.CSharpPropertyName} {{ get; set; }}");
            }

            sb.AppendLine();
            sb.AppendLine($"int {interfaceName}.Index");
            sb.AppendLine("{");
            sb.AppendLine($"    get {{ return {CustomSqlInfo.SwitchCaseIndex}; }}");
            sb.AppendLine("}");

            sb.PaddingCount--;
            sb.AppendLine("}");
            sb.AppendLine();
            sb.AppendLine("[Serializable]");
            sb.AppendLine($"public sealed class {NamingMap.InputClassName.RemoveFromEnd("Request")+"Param"} : {NamingMap.InputClassName} " + "{}");
        }