public void Save(SolutionModel model) { Dependencies.FileWriter.WriteFile(model.SolutionFile); ApiProject.Save(model.ApiProject); CoreProject.Save(model.CoreProject); DataProject.Save(model.DataProject); }
public static void WriteDisclaimer(ApiProject apiProject, string disclaimerFile, IEnumerable <string> dllFiles) { var assemblies = dllFiles .Select(AssemblyDefinition.ReadAssembly) .ToList(); var relevantSymbols = assemblies.NotNull() .SelectMany(x => x.MainModule.Types) .Where(x => x.Namespace != null && x.Namespace.StartsWith("Nuke")) .Distinct(x => x.FullName); File.WriteAllText(disclaimerFile, relevantSymbols.Aggregate(new StringBuilder(), (sb, x) => sb .AppendLine() .AppendLine("---") .AppendLine($"uid: {x}") .AppendLine("---") .AppendLine() .WriteWarning(apiProject) .WriteInformation(apiProject) .AppendLine()) .ToString()); }
public void Should_not_have_error_when_Description_is_specified() { var model = new ApiProject { Description = "The man who moves a mountain begins by carrying away small stones" }; var result = validator.TestValidate(model); result.ShouldNotHaveValidationErrorFor(p => p.Description); }
public void Should_not_have_error_when_Name_is_specified() { var model = new ApiProject { Name = "ThomasIsCool" }; var result = validator.TestValidate(model); result.ShouldNotHaveValidationErrorFor(p => p.Name); }
public void Should_have_error_when_Description_is_null() { var model = new ApiProject { Description = null }; var result = validator.TestValidate(model); result.ShouldHaveValidationErrorFor(p => p.Description); }
public void Should_have_error_when_Name_is_null() { var model = new ApiProject { Name = null }; var result = validator.TestValidate(model); result.ShouldHaveValidationErrorFor(p => p.Name); }
static StringBuilder WriteInformation(this StringBuilder builder, ApiProject apiProject) { var packageId = apiProject.PackageId; return(builder .AppendLine("<div class=\"alert alert-info\" role=\"info\">") .AppendLine(" <span class=\"icon icon-info alert-icon\"></span>") .AppendLine($" This API is part of the <a href=\"https://nuget.org/packages/{packageId}\"><strong>{packageId}</strong></a> package.") .AppendLine( $" The code is available at <a href=\"{apiProject.RepositoryUrl}\"><strong>{apiProject.RepositoryUrl}</strong></a>.") .AppendLine("</div>")); }
public SolutionModel ScaffoldModel(OpenApiOptions options) { SolutionModel model = new SolutionModel { SolutionFile = new ScaffoldedFile { Code = Generator.WriteProjectFile(options), Path = Path.Combine(options.SolutionDir, $"{options.SolutionName}.sln") }, ApiProject = ApiProject.ScaffoldModel(options), CoreProject = CoreProject.ScaffoldModel(options), DataProject = DataProject.ScaffoldModel(options) }; return(model); }
static StringBuilder WriteWarning(this StringBuilder builder, ApiProject apiProject) { const string org = "nuke-build"; var owner = apiProject.RepositoryUrl.Replace("https://github.com/", string.Empty).Split('/').First(); if (owner == org) { return(builder); } return(builder .AppendLine("<div class=\"alert alert-warning\" role=\"warning\">") .AppendLine(" <span class=\"icon icon-warning alert-icon\"></span>") .AppendLine($" Solely maintained by <a href=\"https://github.com/{owner}\"><strong>@{owner}</strong></a>.") .AppendLine($" Listing approved by <a href=\"https://github.com/{org}\"><strong>@{org}</strong></a>.") .AppendLine("</div>")); }
/// <summary> /// Добавляет недостающие проекты. /// </summary> /// <param name="projects"></param> /// <returns></returns> public int AddProjects(IEnumerable <XmlProject> projects) { var createProjects = SyncHelper.GetItemsForCreate( projects, _apiProjects, p => GetSiteKey(p.Site), p => GetSiteKey(p.Site)) .ToList(); foreach (var proj in createProjects) { var request = _requestBuilder.GetAddProjectRequest(proj.Site); var projectId = _client.GetMessageResult(request); var newProject = new ApiProject() { Id = projectId, Site = proj.Site, On = 0 }; _apiProjects.Add(newProject); } return(createProjects.Count); }
public async Task GetIdReturnsOkResultWhenSuccessAnswerAsync() { // Arrange var entityId = "0000000000000000"; var appEntity = new Project() { Id = entityId, IsArchived = false, Title = "Test Project" }; var apiEntity = new ApiProject() { Id = entityId, IsArchived = false, Title = "Test Project" }; var mediator = new Mock <IMediator>(); mediator.Setup(x => x.Send(It.IsAny <EntityQuery <Project> >(), It.IsAny <CancellationToken>())) .ReturnsAsync( new EntityResponse <Project>() { Success = true, Entity = appEntity }) .Verifiable("Query was not sent."); var controller = BuildController(mediator); // Act var controllerAnswer = await controller.Get(entityId); // Assert Assert.IsType <OkObjectResult>(controllerAnswer); Assert.Equal(apiEntity.Id, (((OkObjectResult)controllerAnswer).Value as ApiProject).Id); mediator.Verify(x => x.Send(It.IsAny <EntityQuery <Project> >(), It.IsAny <CancellationToken>())); }