コード例 #1
0
        public GeneratedSolution BuildSolution([FromBody] KickstartSolutionRequest generationModel)
        {
            generationModel.GenerateGrpcUnitTestProject = true;

            var channel = new Channel("localhost:50083", ChannelCredentials.Insecure);

            var client = new KickstartServiceApiClient(channel);

            var response = client.KickstartSolution(generationModel);

            return(new GeneratedSolution
            {
                Succeeded = response.Succeeded,
                ErrorMessage = response.ErrorMessage,
                ZipAsBase64 = response.GeneratedFilesBase64
            });
        }
コード例 #2
0
        public override async Task <KickstartSolutionResponse> KickstartSolution(KickstartSolutionRequest request, ServerCallContext context)
        {
            var workDir = GetTemporaryDirectory();
            var model   = new KickstartWizardModel
            {
                ProjectDirectory           = workDir,
                MetadataSource             = MetadataSource.Grpc,
                ConvertToSnakeCase         = request.ConvertToSnakeCase,
                CreateDataLayerProject     = request.GenerateDataLayerProject,
                CreateDatabaseProject      = request.GenerateDatabaseProject,
                CreateGrpcServiceProject   = request.GenerateGrpcServiceProject,
                CreateGrpcUnitTestProject  = request.GenerateGrpcUnitTestProject,
                CreateGrpcClientProject    = request.GenerateGrpcClientProject,
                CreateWebAppProject        = request.GenerateWebAppProject,
                CreateDockerComposeProject = request.GenerateDockerComposeProject,
                CompanyName   = request.CompanyName,
                SolutionName  = request.SolutionName,
                ProjectName   = request.ProjectName,
                DatabaseType  = (Utility.DataStoreTypes)request.DatabaseType,
                ProtoFileText = request.ProtoFileText,
                GenerateStoredProcAsEmbeddedQuery = true
            };

            try
            {
                var result = await _executor.ExecuteAsync(new BuildSolutionQuery
                {
                    KickstartModel = model
                }).ConfigureAwait(false);
            }
            catch (Exception ex)
            {
                var response = new KickstartSolutionResponse
                {
                    Succeeded    = false,
                    ErrorMessage = ex.Message
                };
                return(response);
            }
            var tempZip = Path.GetTempFileName();

            File.Delete(tempZip);
            System.IO.Compression.ZipFile.CreateFromDirectory(workDir, tempZip);

            using (MemoryStream memoryStream = new MemoryStream())
            {
                using (FileStream file = new FileStream(tempZip, FileMode.Open, FileAccess.Read))
                    file.CopyTo(memoryStream);

                File.Delete(tempZip);
                ClearFolder(workDir);
                Directory.Delete(workDir);
                var response = new KickstartSolutionResponse
                {
                    Succeeded            = true,
                    GeneratedFilesBase64 = Convert.ToBase64String(memoryStream.ToArray())
                };

                return(response);
            }
        }