public ProjectsController(ILogger <ProjectsController> logger, DtoGenerator dtoGenerator, UserResolver userResolver, Uploads uploads) { _logger = logger; _dtoGenerator = dtoGenerator; _userResolver = userResolver; _uploads = uploads; }
public AdoptJobItem(ILogger logger, ProjectInfo projectInfo, string fileName, ProjectWork projectWork, DtoGenerator dtoGenerator, UserResolver userResolver) : base(logger, null, projectWork) { _projectInfo = projectInfo; _fileName = fileName; _dtoGenerator = dtoGenerator; _userResolver = userResolver; }
public ProjectWork(ILogger <ProjectWork> logger, Arranger arranger, FdaClient fdaClient, DtoGenerator dtoGenerator, UserResolver userResolver) { _logger = logger; _arranger = arranger; _fdaClient = fdaClient; _dtoGenerator = dtoGenerator; _userResolver = userResolver; }
public ProjectsController(ILogger <ProjectsController> logger, DtoGenerator dtoGenerator, UserResolver userResolver, ProfileProvider profileProvider, Uploads uploads, ProjectService projectService) { _logger = logger; _dtoGenerator = dtoGenerator; _userResolver = userResolver; _profileProvider = profileProvider; _uploads = uploads; _projectService = projectService; }
public JobsHub(ILogger <JobsHub> logger, ProjectWork projectWork, LinkGenerator linkGenerator, UserResolver userResolver, Uploads uploads, DtoGenerator dtoGenerator) { _logger = logger; _projectWork = projectWork; _linkGenerator = linkGenerator; _userResolver = userResolver; _uploads = uploads; _dtoGenerator = dtoGenerator; _sender = new Sender(this); }
public void RegisterUser_WithValidEmailAndPassword_ReturnsOk() { var restClient = new RestClient(ApiBaseUrl); var newUser = DtoGenerator.GetValidRegisterUserDto(); RestRequest request = CreateRequest(ServiceUrl, RegisterActionUrl, newUser); IRestResponse response = restClient.Post(request); string jsonContent = response.Content; var apiResponse = JsonConvert.DeserializeObject <ApiResponseDto <RegisterUserRes> >(jsonContent); Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); Assert.IsNull(apiResponse.Error); Assert.IsNotNull(apiResponse.Result.Message); }
public ProjectService(ILogger <ProjectService> logger, UserResolver userResolver, ProjectWork projectWork, DtoGenerator dtoGenerator) { _logger = logger; _userResolver = userResolver; _projectWork = projectWork; _dtoGenerator = dtoGenerator; _waitForBucketPolicy = Policy .Handle <ApiException>(e => e.ErrorCode == StatusCodes.Status404NotFound) .WaitAndRetryAsync( retryCount: 4, retryAttempt => TimeSpan.FromSeconds(Math.Pow(2, retryAttempt)), (exception, timeSpan) => _logger.LogWarning("Cannot get fresh OSS bucket. Repeating") ); }
public JobsHub(ILogger <JobsHub> logger, ProjectWork projectWork, LinkGenerator linkGenerator, UserResolver userResolver, ProfileProvider profileProvider, Uploads uploads, DtoGenerator dtoGenerator, ProjectService projectService, AdoptProjectWithParametersPayloadProvider adoptProjectWithParametersPayloadProvider, IConfiguration configuration) { _logger = logger; _projectWork = projectWork; _linkGenerator = linkGenerator; _profileProvider = profileProvider; _userResolver = userResolver; _uploads = uploads; _dtoGenerator = dtoGenerator; _projectService = projectService; _adoptProjectWithParametersPayloadProvider = adoptProjectWithParametersPayloadProvider; _configuration = configuration; _sender = new Sender(this); }
public void RegisterUser_WithNumericPassword_ReturnsBadRequest() { var restClient = new RestClient(ApiBaseUrl); var newUser = DtoGenerator.GetValidRegisterUserDto(); newUser.Password = "******"; RestRequest request = CreateRequest(ServiceUrl, RegisterActionUrl, newUser); IRestResponse response = restClient.Post(request); string jsonContent = response.Content; var apiResponse = JsonConvert.DeserializeObject <ApiResponseDto <RegisterUserRes> >(jsonContent); Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode); Assert.IsNull(apiResponse.Result); Assert.IsNotNull(apiResponse.Error); Assert.IsTrue(apiResponse.Error.Messages.Count > 0); }
private static void Generate(string inputPath, string outputPath) { var fileWorker = new FileWorker.FileWorker(); try { var text = fileWorker.ReadFile(inputPath); ClassesList classes = new JsonParser.JsonParser().ParseClassDescriptions(text); var generator = new DtoGenerator(classes, new CodeDomGenerator(), new Configuration()); List <GeneratedClass> generatedClasses = generator.GenerateClasses(); fileWorker.WriteFile(outputPath, generatedClasses); } catch (Exception ex) { Logger.GetInstance().Log(ex.Message); } }
public InitializerTestBase(DefaultProjectsConfiguration defaultProjectsConfiguration) { var configuration = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json", false) .AddJsonFile("appsettings.Local.json", optional: true, reloadOnChange: true) .AddEnvironmentVariables() .AddForgeAlternativeEnvironmentVariables() .Build(); IServiceCollection services = new ServiceCollection(); services.AddHttpClient(); var serviceProvider = services.BuildServiceProvider(); ForgeConfiguration forgeConfiguration = configuration.GetSection("Forge").Get <ForgeConfiguration>(); IOptions <ForgeConfiguration> forgeConfigOptions = Options.Create(forgeConfiguration); var httpClientFactory = serviceProvider.GetRequiredService <IHttpClientFactory>(); forgeOSS = new ForgeOSS(httpClientFactory, forgeConfigOptions, new NullLogger <ForgeOSS>()); var httpMessageHandler = new ForgeHandler(Options.Create(forgeConfiguration)) { InnerHandler = new HttpClientHandler() }; var forgeService = new ForgeService(new HttpClient(httpMessageHandler)); var designAutomationClient = new DesignAutomationClient(forgeService); projectsBucketKey = Guid.NewGuid().ToString(); localCache = new LocalCache(); var bucketPrefixProvider = new BucketPrefixProvider(forgeConfigOptions, configuration); var resourceProvider = new ResourceProvider(forgeConfigOptions, designAutomationClient, configuration, bucketPrefixProvider, projectsBucketKey); var postProcessing = new PostProcessing(httpClientFactory, new NullLogger <PostProcessing>(), localCache, Options.Create(new ProcessingOptions())); var publisher = new Publisher(designAutomationClient, new NullLogger <Publisher>(), resourceProvider, postProcessing, Options.Create(new PublisherConfiguration()), new WorkItemsApi(forgeService), null, new TaskUtil()); var appBundleZipPathsConfiguration = new AppBundleZipPaths { EmptyExe = "../../../../WebApplication/AppBundles/EmptyExePlugin.bundle.zip", DataChecker = "../../../../WebApplication/AppBundles/DataCheckerPlugin.bundle.zip", CreateSVF = "../../../../WebApplication/AppBundles/CreateSVFPlugin.bundle.zip", CreateThumbnail = "../../../../WebApplication/AppBundles/CreateThumbnailPlugin.bundle.zip", ExtractParameters = "../../../../WebApplication/AppBundles/ExtractParametersPlugin.bundle.zip", UpdateParameters = "../../../../WebApplication/AppBundles/UpdateParametersPlugin.bundle.zip", CreateRFA = "../../../../WebApplication/AppBundles/RFAExportRCEPlugin.bundle.zip", CreateBOM = "../../../../WebApplication/AppBundles/ExportBOMPlugin.bundle.zip", ExportDrawing = "../../../../WebApplication/AppBundles/ExportDrawingAsPdfPlugin.bundle.zip", UpdateDrawings = "../../../../WebApplication/AppBundles/UpdateDrawingsPlugin.bundle.zip" }; IOptions <AppBundleZipPaths> appBundleZipPathsOptions = Options.Create(appBundleZipPathsConfiguration); var fdaClient = new FdaClient(publisher, appBundleZipPathsOptions); IOptions <DefaultProjectsConfiguration> defaultProjectsOptions = Options.Create(defaultProjectsConfiguration); var profileProvider = new ProfileProvider(forgeOSS); var bucketKeyProvider = new LoggedInUserBucketKeyProvider(profileProvider, resourceProvider); var userResolver = new UserResolver(forgeOSS, bucketKeyProvider, localCache, NullLogger <UserResolver> .Instance, profileProvider); var arranger = new Arranger(httpClientFactory, userResolver); // TODO: linkGenerator should be mocked var dtoGenerator = new DtoGenerator(linkGenerator: null, localCache); var projectWork = new ProjectWork(new NullLogger <ProjectWork>(), arranger, fdaClient, dtoGenerator, userResolver); var projectService = new ProjectService(new NullLogger <ProjectService>(), userResolver, projectWork, dtoGenerator); initializer = new Initializer(new NullLogger <Initializer>(), fdaClient, defaultProjectsOptions, projectWork, userResolver, localCache, projectService, bucketPrefixProvider); testFileDirectory = Directory.CreateDirectory(Path.Combine(Path.GetTempPath(), Path.GetRandomFileName())); httpClient = new HttpClient(); }
public override void ExecuteResult(ControllerContext context) { var types = new HashSet <Type>(); var sb = new StringBuilder(); var cw = new CodeWriter(sb, 4); cw.Indented("namespace "); sb.AppendLine(this.Namespace); cw.InBrace(delegate { foreach (var ns in new string[] { "System", "System.Collections.Generic" }) { cw.Indented("using "); sb.Append(ns); sb.AppendLine(";"); } sb.AppendLine(); cw.Indented("public interface I"); var className = context.Controller.GetType().Name; if (className.EndsWith("Controller")) { className = className.Substring(0, className.Length - 10); } sb.Append(className); sb.AppendLine("Service"); cw.InBrace(delegate { foreach (var method in context.Controller.GetType().GetMethods(BindingFlags.Instance | BindingFlags.Public)) { if (method.GetCustomAttribute <NonActionAttribute>() != null) { continue; } if (typeof(Controller).IsSubclassOf(method.DeclaringType)) { continue; } if (method.IsSpecialName && (method.Name.StartsWith("set_") || method.Name.StartsWith("get_"))) { continue; } // belki burada daha sonra metod listesini de verebiliriz (ayrı bir namespace de?) var parameters = method.GetParameters(); if (parameters.Length != 1) { // tek parametreli olmalı continue; } var returnType = method.ReturnType; if (returnType.IsAssignableFrom(typeof(DtoActionResult))) { continue; } var paramType = parameters[0].ParameterType; if (paramType.IsPrimitive || !DtoGenerator.CanHandleType(paramType)) { continue; } types.Add(parameters[0].ParameterType); Type responseType = returnType; if (returnType != null && returnType.IsGenericType && returnType.GetGenericTypeDefinition() == typeof(Result <>)) { responseType = returnType.GenericTypeArguments[0]; types.Add(responseType); } cw.Indent(); DtoGenerator.HandleMemberType(sb, responseType, enqueueType: null); sb.Append(' '); sb.Append(method.Name); sb.Append("("); DtoGenerator.HandleMemberType(sb, paramType, enqueueType: null); sb.Append(' '); sb.Append(parameters[0].Name); sb.AppendLine(");"); } }); }); if (ExtraTypes != null && ExtraTypes.Length > 0) { types.AddRange(ExtraTypes); } Type[] fromTypes = new Type[types.Count]; types.CopyTo(fromTypes, 0); sb.AppendLine(); sb.AppendLine(); var code = sb.ToString() + new DtoGenerator().GenerateCode(Namespace, fromTypes); new ContentResult { ContentEncoding = Encoding.UTF8, ContentType = "text/plain", Content = code }.ExecuteResult(context); }
public static IEnumerable <ICSharpType> GenerateDtos(this OpenApiDocument doc, INamingStrategy naming) { var generator = new DtoGenerator(naming); return(generator.Generate(doc.Components?.Schemas ?? new Dictionary <string, OpenApiSchema>())); }