Browse Source

Update on NuGet.Config on project creation.

pull/1606/head
Halil İbrahim Kalkan 7 years ago
parent
commit
1af170e9ba
  1. 1
      framework/src/Volo.Abp.Caching/Volo/Abp/Caching/DistributedCache.cs
  2. 36
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Licensing/AbpIoApiKeyService.cs
  3. 12
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Licensing/DeveloperApiKeyResult.cs
  4. 10
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Licensing/IApiKeyService.cs
  5. 12
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/ProjectBuilder.cs
  6. 6
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs
  7. 35
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/UpdateNuGetConfigStep.cs
  8. 0
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Module/ModuleTemplate.cs

1
framework/src/Volo.Abp.Caching/Volo/Abp/Caching/DistributedCache.cs

@ -28,7 +28,6 @@ namespace Volo.Abp.Caching
protected ICancellationTokenProvider CancellationTokenProvider { get; }
//TODO: Create IDistributedCacheSerializer
protected IDistributedCacheSerializer Serializer { get; }
protected ICurrentTenant CurrentTenant { get; }

36
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Licensing/AbpIoApiKeyService.cs

@ -0,0 +1,36 @@
using System;
using System.Threading.Tasks;
using Volo.Abp.Cli.Http;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Json;
namespace Volo.Abp.Cli.Licensing
{
public class AbpIoApiKeyService : IApiKeyService, ITransientDependency
{
public AbpIoApiKeyService(IJsonSerializer jsonSerializer)
{
JsonSerializer = jsonSerializer;
}
protected IJsonSerializer JsonSerializer { get; }
public async Task<string> GetApiKeyOrNullAsync()
{
using (var client = new CliHttpClient())
{
var url = $"{CliUrls.WwwAbpIo}api/license/api-key";
var response = await client.GetAsync(url);
if (!response.IsSuccessStatusCode)
{
throw new Exception($"ERROR: Remote server returns '{response.StatusCode}'");
}
var responseContent = await response.Content.ReadAsStringAsync();
return JsonSerializer.Deserialize<DeveloperApiKeyResult>(responseContent).ApiKey;
}
}
}
}

12
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Licensing/DeveloperApiKeyResult.cs

@ -0,0 +1,12 @@
using System;
namespace Volo.Abp.Cli.Licensing
{
public class DeveloperApiKeyResult
{
public bool HasActiveLicense { get; set; }
public string OrganizationName { get; set; }
public string ApiKey { get; set; }
public DateTime LicenseEndTime { get; set; }
}
}

10
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Licensing/IApiKeyService.cs

@ -0,0 +1,10 @@
using System.Net;
using System.Threading.Tasks;
namespace Volo.Abp.Cli.Licensing
{
public interface IApiKeyService
{
Task<string> GetApiKeyOrNullAsync();
}
}

12
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/ProjectBuilder.cs

@ -5,6 +5,7 @@ using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Volo.Abp.Cli.Licensing;
using Volo.Abp.Cli.ProjectBuilding.Analyticses;
using Volo.Abp.Cli.ProjectBuilding.Building;
using Volo.Abp.DependencyInjection;
@ -21,18 +22,21 @@ namespace Volo.Abp.Cli.ProjectBuilding
protected ICliAnalyticsCollect CliAnalyticsCollect { get; }
protected CliOptions Options { get; }
protected IJsonSerializer JsonSerializer { get; }
protected IApiKeyService ApiKeyService { get; }
public ProjectBuilder(ITemplateStore templateStore,
ITemplateInfoProvider templateInfoProvider,
ICliAnalyticsCollect cliAnalyticsCollect,
IOptions<CliOptions> options,
IJsonSerializer jsonSerializer)
IJsonSerializer jsonSerializer,
IApiKeyService apiKeyService)
{
TemplateStore = templateStore;
TemplateInfoProvider = templateInfoProvider;
CliAnalyticsCollect = cliAnalyticsCollect;
Options = options.Value;
JsonSerializer = jsonSerializer;
ApiKeyService = apiKeyService;
Logger = NullLogger<ProjectBuilder>.Instance;
}
@ -48,6 +52,12 @@ namespace Volo.Abp.Cli.ProjectBuilding
args.Version
);
var apiKey = await ApiKeyService.GetApiKeyOrNullAsync();
if (apiKey != null)
{
args.ExtraProperties["api-key"] = apiKey;
}
var context = new ProjectBuildContext(
templateInfo,
templateFile,

6
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs

@ -25,6 +25,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App
SwitchDatabaseProvider(context, steps);
DeleteUnrelatedProjects(context, steps);
RandomizeSslPorts(context, steps);
UpdateNuGetConfig(context, steps);
CleanupFolderHierarchy(context, steps);
return steps;
@ -113,6 +114,11 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App
);
}
private void UpdateNuGetConfig(ProjectBuildContext context, List<ProjectBuildPipelineStep> steps)
{
steps.Add(new UpdateNuGetConfigStep("/aspnet-core/NuGet.Config"));
}
private void CleanupFolderHierarchy(ProjectBuildContext context, List<ProjectBuildPipelineStep> steps)
{
if (context.BuildArgs.UiFramework == UiFramework.Mvc)

35
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/UpdateNuGetConfigStep.cs

@ -0,0 +1,35 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Volo.Abp.Cli.ProjectBuilding.Building;
using Volo.Abp.Cli.ProjectBuilding.Files;
namespace Volo.Abp.Cli.ProjectBuilding.Templates.App
{
public class UpdateNuGetConfigStep : ProjectBuildPipelineStep
{
private readonly string _nugetConfigFilePath;
public UpdateNuGetConfigStep(string nugetConfigFilePath)
{
_nugetConfigFilePath = nugetConfigFilePath;
}
public override void Execute(ProjectBuildContext context)
{
var file = context.Files.FirstOrDefault(f => f.Name == _nugetConfigFilePath);
if (file == null)
{
return;
}
var apiKey = context.BuildArgs.ExtraProperties.GetOrDefault("api-key");
if (apiKey.IsNullOrEmpty())
{
return;
}
file.ReplaceText("{api-key}", apiKey);
}
}
}

0
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/MvcModule/ModuleTemplate.cs → framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Module/ModuleTemplate.cs

Loading…
Cancel
Save