refact
This commit is contained in:
16
.gitignore
vendored
16
.gitignore
vendored
@ -1,11 +1,9 @@
|
|||||||
/packages/
|
/packages/
|
||||||
/bin/
|
src/isnd/bin/
|
||||||
/obj/
|
src/isnd/obj/
|
||||||
test/nuget.host.tests/bin/
|
src/isn/obj
|
||||||
test/nuget.host.tests/obj
|
src/isn/bin
|
||||||
src/appled/bin/
|
|
||||||
src/appled/obj/
|
|
||||||
src/applec/obj
|
|
||||||
src/applec/bin
|
|
||||||
.vscode/launch.json
|
.vscode/launch.json
|
||||||
src/applec/.vscode/
|
src/isn/.vscode/
|
||||||
|
test/isnd.tests/obj/
|
||||||
|
test/isnd.tests/bin/
|
||||||
|
@ -22,7 +22,7 @@ publish:
|
|||||||
stage: deploy
|
stage: deploy
|
||||||
artifacts:
|
artifacts:
|
||||||
paths:
|
paths:
|
||||||
- src/appled/bin/Release/netcoreapp2.1/publish/
|
- src/isnd/bin/Release/netcoreapp2.1/publish/
|
||||||
when: always
|
when: always
|
||||||
script:
|
script:
|
||||||
- dotnet publish --configuration Release
|
- dotnet publish --configuration Release
|
||||||
@ -37,7 +37,7 @@ deploy-to-gitlab:
|
|||||||
- dotnet nuget add source --name gitlab --username gitlab+deploy-token-2 --password
|
- dotnet nuget add source --name gitlab --username gitlab+deploy-token-2 --password
|
||||||
$CI_JOB_TOKEN --store-password-in-clear-text "$CI_SERVER_URL/api/v4/projects/$CI_PROJECT_ID/packages/nuget/index.json"
|
$CI_JOB_TOKEN --store-password-in-clear-text "$CI_SERVER_URL/api/v4/projects/$CI_PROJECT_ID/packages/nuget/index.json"
|
||||||
- dotnet nuget push src/*/bin/Release/*.nupkg -s gitlab
|
- dotnet nuget push src/*/bin/Release/*.nupkg -s gitlab
|
||||||
deploy-to-apple:
|
deploy-to-isn:
|
||||||
stage: deploy
|
stage: deploy
|
||||||
artifacts:
|
artifacts:
|
||||||
paths:
|
paths:
|
||||||
@ -45,11 +45,11 @@ deploy-to-apple:
|
|||||||
when: always
|
when: always
|
||||||
script:
|
script:
|
||||||
- dotnet pack --configuration Release --no-restore
|
- dotnet pack --configuration Release --no-restore
|
||||||
- cd src/applec
|
- cd src/isn
|
||||||
- dotnet run push -s $NUGETSOURCE -k $NUGETSOURCEAPIKEY ../*/bin/Release/*.nupkg
|
- dotnet run push -s $NUGETSOURCE -k $NUGETSOURCEAPIKEY ../*/bin/Release/*.nupkg
|
||||||
environment:
|
environment:
|
||||||
name: production
|
name: production
|
||||||
url: https://apple.pschneider.fr
|
url: https://isn.pschneider.fr
|
||||||
stages:
|
stages:
|
||||||
- test
|
- test
|
||||||
- deploy
|
- deploy
|
||||||
|
6
.vscode/tasks.json
vendored
6
.vscode/tasks.json
vendored
@ -31,7 +31,7 @@
|
|||||||
"command": "msbuild",
|
"command": "msbuild",
|
||||||
"type": "process",
|
"type": "process",
|
||||||
"args": [
|
"args": [
|
||||||
"src/applec",
|
"src/isn",
|
||||||
"/p:Configuration=Debug",
|
"/p:Configuration=Debug",
|
||||||
"/property:GenerateFullPaths=true",
|
"/property:GenerateFullPaths=true",
|
||||||
"/consoleloggerparameters:NoSummary",
|
"/consoleloggerparameters:NoSummary",
|
||||||
@ -71,7 +71,7 @@
|
|||||||
"command": "dotnet",
|
"command": "dotnet",
|
||||||
"type": "process",
|
"type": "process",
|
||||||
"args": [
|
"args": [
|
||||||
"${workspaceFolder}/bin/Debug/netcoreapp2.1/appled.dll"
|
"${workspaceFolder}/bin/Debug/netcoreapp2.1/isnd.dll"
|
||||||
],
|
],
|
||||||
"problemMatcher": "$msCompile"
|
"problemMatcher": "$msCompile"
|
||||||
},
|
},
|
||||||
@ -80,7 +80,7 @@
|
|||||||
"command": "dotnet",
|
"command": "dotnet",
|
||||||
"type": "process",
|
"type": "process",
|
||||||
"args": [
|
"args": [
|
||||||
"bin/Debug/netcoreapp2.1/appled.dll",
|
"bin/Debug/netcoreapp2.1/isnd.dll",
|
||||||
"/property:GenerateFullPaths=true",
|
"/property:GenerateFullPaths=true",
|
||||||
"/restore"
|
"/restore"
|
||||||
],
|
],
|
||||||
|
@ -4,10 +4,10 @@
|
|||||||
|
|
||||||
dotnet user-secrets set ConnectionStrings:DefaultConnection "Server=<lame-pgserver>;Port=<lame-pgport>;Database=<lame-dbname>;Username=<lame-dbusername>;Password=<lame-dbpass>;"
|
dotnet user-secrets set ConnectionStrings:DefaultConnection "Server=<lame-pgserver>;Port=<lame-pgport>;Database=<lame-dbname>;Username=<lame-dbusername>;Password=<lame-dbpass>;"
|
||||||
|
|
||||||
appled&
|
isnd&
|
||||||
|
|
||||||
# get an api-key from <http://localhost:5000/ApkKeys>
|
# get an api-key from <http://localhost:5000/ApkKeys>
|
||||||
|
|
||||||
applec push -k <lame-api-key> -s http://localhost:5000/packages your-lame-versionned.nupkg
|
isn push -k <lame-api-key> -s http://localhost:5000/packages your-lame-versionned.nupkg
|
||||||
|
|
||||||
````
|
````
|
||||||
|
@ -61,7 +61,7 @@ start() {
|
|||||||
else
|
else
|
||||||
cd $ROOT
|
cd $ROOT
|
||||||
log_daemon_msg "Starting service $NAME for user $WWW_USER"
|
log_daemon_msg "Starting service $NAME for user $WWW_USER"
|
||||||
if ! start-stop-daemon -SbmCv -u $WWW_USER -p $PIDFILE -d $ROOT -g www-data -x /usr/bin/dotnet appled.dll run > "${LOGDIR}/kestrel-${NAME}.log"
|
if ! start-stop-daemon -SbmCv -u $WWW_USER -p $PIDFILE -d $ROOT -g www-data -x /usr/bin/dotnet isnd.dll run > "${LOGDIR}/kestrel-${NAME}.log"
|
||||||
then
|
then
|
||||||
log_daemon_msg "Could not start $NAME : $?, see ${LOGDIR}/kestrel-${NAME}.log"
|
log_daemon_msg "Could not start $NAME : $?, see ${LOGDIR}/kestrel-${NAME}.log"
|
||||||
log_end_msg 2
|
log_end_msg 2
|
||||||
|
@ -5,13 +5,13 @@ VisualStudioVersion = 16.6.30114.105
|
|||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{3C312E42-9A47-4BED-8265-A405FCA6AFFF}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{3C312E42-9A47-4BED-8265-A405FCA6AFFF}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nuget.host.tests", "test\nuget.host.tests\nuget.host.tests.csproj", "{9D758F00-17FF-433D-B088-F9C2D97C9BD1}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "isnd.tests", "test\isnd.tests\isnd.tests.csproj", "{9D758F00-17FF-433D-B088-F9C2D97C9BD1}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E8A2DF68-847A-4D88-B002-64FB666F696C}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E8A2DF68-847A-4D88-B002-64FB666F696C}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "appled", "src\appled\appled.csproj", "{468DB0E4-6221-4E01-BEFF-F452865E59C1}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "isnd", "src\isnd\isnd.csproj", "{468DB0E4-6221-4E01-BEFF-F452865E59C1}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "applec", "src\applec\applec.csproj", "{910E800A-59AE-46C4-B7C7-879986179246}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "isn", "src\isn\isn.csproj", "{910E800A-59AE-46C4-B7C7-879986179246}"
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
"msbuild": {
|
|
||||||
"Configuration": "Debug",
|
|
||||||
"CscToolPath": "/usr/bin",
|
|
||||||
"CscToolExe": "csc"
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,68 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.IO;
|
|
||||||
using System.Net;
|
|
||||||
using System.Net.Http;
|
|
||||||
using System.Net.Http.Headers;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace nuget_cli
|
|
||||||
{
|
|
||||||
public class HttpClientServerQueryHandler
|
|
||||||
{
|
|
||||||
internal async Task UploadFilesToServerAsync(
|
|
||||||
PushReport report, Uri uri,
|
|
||||||
FileInfo fi, string apikey)
|
|
||||||
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
|
|
||||||
|
|
||||||
using (var formdata = new MultipartFormDataContent("NKdKd9Yk"))
|
|
||||||
{
|
|
||||||
using (HttpClient client = new HttpClient())
|
|
||||||
{
|
|
||||||
var dispo = new ContentDispositionHeaderValue("file")
|
|
||||||
{
|
|
||||||
FileName = fi.Name,
|
|
||||||
CreationDate = fi.CreationTime,
|
|
||||||
DispositionType = "form-data",
|
|
||||||
Size = fi.Length,
|
|
||||||
ModificationDate = fi.LastAccessTime
|
|
||||||
};
|
|
||||||
|
|
||||||
Stream fileStream = fi.OpenRead();
|
|
||||||
var streamcontent = new StreamContent(fileStream);
|
|
||||||
streamcontent.Headers.ContentDisposition = dispo;
|
|
||||||
formdata.Add(streamcontent, "file", fi.Name);
|
|
||||||
|
|
||||||
client.BaseAddress = uri;
|
|
||||||
HttpRequestMessage put = new HttpRequestMessage(HttpMethod.Put, uri)
|
|
||||||
{
|
|
||||||
Content = formdata
|
|
||||||
};
|
|
||||||
put.Headers.Add("X-NuGet-Client-Version", Constants.ClientVersion);
|
|
||||||
put.Headers.Add("X-NuGet-ApiKey", apikey);
|
|
||||||
put.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
|
|
||||||
|
|
||||||
HttpResponseMessage response = await client.SendAsync(put);
|
|
||||||
|
|
||||||
response.EnsureSuccessStatusCode();
|
|
||||||
report.StatusCode = response.StatusCode.ToString();
|
|
||||||
var respstream = await response.Content.ReadAsStreamAsync();
|
|
||||||
var sr = new StreamReader(respstream);
|
|
||||||
report.Message = await sr.ReadToEndAsync();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
catch (Exception rex)
|
|
||||||
{
|
|
||||||
report.Message = rex.Message;
|
|
||||||
report.StatusCode = "internal error";
|
|
||||||
report.OK = false;
|
|
||||||
Console.Error.WriteLine(rex.Message);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,3 +0,0 @@
|
|||||||
@using nuget_host.Data
|
|
||||||
@using nuget_host.ViewModels
|
|
||||||
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
|
|
File diff suppressed because one or more lines are too long
@ -1,8 +0,0 @@
|
|||||||
/*!
|
|
||||||
* Bootstrap Reboot v4.4.1 (https://getbootstrap.com/)
|
|
||||||
* Copyright 2011-2019 The Bootstrap Authors
|
|
||||||
* Copyright 2011-2019 Twitter, Inc.
|
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
|
||||||
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
|
|
||||||
*/*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]){color:inherit;text-decoration:none}a:not([href]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}
|
|
||||||
/*# sourceMappingURL=bootstrap-reboot.min.css.map */
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -2,6 +2,6 @@ namespace nuget_cli
|
|||||||
{
|
{
|
||||||
internal static class Constants
|
internal static class Constants
|
||||||
{
|
{
|
||||||
internal const string ClientVersion = "applec v1.0";
|
internal const string ClientVersion = "isn v1.0";
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -107,9 +107,9 @@ namespace nuget_cli
|
|||||||
catch (OptionException e)
|
catch (OptionException e)
|
||||||
{
|
{
|
||||||
// output some error message
|
// output some error message
|
||||||
Console.Write("applec: ");
|
Console.Write("isn: ");
|
||||||
Console.WriteLine(e.Message);
|
Console.WriteLine(e.Message);
|
||||||
Console.WriteLine("Try `applec --help' for more information.");
|
Console.WriteLine("Try `isn --help' for more information.");
|
||||||
return 2;
|
return 2;
|
||||||
}
|
}
|
||||||
|
|
BIN
src/isn/isn.1.0.0.nupkg
Normal file
BIN
src/isn/isn.1.0.0.nupkg
Normal file
Binary file not shown.
@ -9,6 +9,7 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Mono.Options" Version="5.3.0" />
|
<PackageReference Include="Mono.Options" Version="5.3.0" />
|
||||||
<PackageReference Include="Newtonsoft.Json" Version="11.0.1"/>
|
<PackageReference Include="Newtonsoft.Json" Version="11.0.1"/>
|
||||||
|
<PackageReference Include="unleash.client" Version="1.6.1" />
|
||||||
<Reference Include="System.Net.Http" Version="4.0.0"/>
|
<Reference Include="System.Net.Http" Version="4.0.0"/>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
@ -1,6 +1,6 @@
|
|||||||
using Microsoft.AspNetCore.Authorization;
|
using Microsoft.AspNetCore.Authorization;
|
||||||
|
|
||||||
namespace nuget_host.Authorization
|
namespace isn.Authorization
|
||||||
{
|
{
|
||||||
internal class ValidApiKeyRequirement : IAuthorizationRequirement
|
internal class ValidApiKeyRequirement : IAuthorizationRequirement
|
||||||
{
|
{
|
@ -1,7 +1,7 @@
|
|||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.AspNetCore.Authorization;
|
using Microsoft.AspNetCore.Authorization;
|
||||||
|
|
||||||
namespace nuget_host.Authorization
|
namespace isn.Authorization
|
||||||
{
|
{
|
||||||
internal class ValidApiKeyRequirementHandler : AuthorizationHandler<ValidApiKeyRequirement>
|
internal class ValidApiKeyRequirementHandler : AuthorizationHandler<ValidApiKeyRequirement>
|
||||||
{
|
{
|
@ -1,4 +1,4 @@
|
|||||||
namespace nuget_host
|
namespace isn
|
||||||
{
|
{
|
||||||
public static class Constants
|
public static class Constants
|
||||||
{
|
{
|
@ -7,14 +7,14 @@ using Microsoft.AspNetCore.Http;
|
|||||||
using Microsoft.AspNetCore.Identity;
|
using Microsoft.AspNetCore.Identity;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Microsoft.Extensions.Options;
|
using Microsoft.Extensions.Options;
|
||||||
using nuget_host.Data;
|
using isn.Data;
|
||||||
using nuget_host.Data.Roles;
|
using isn.Data.Roles;
|
||||||
using System;
|
using System;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Security.Claims;
|
using System.Security.Claims;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace nuget_host.Controllers
|
namespace isn.Controllers
|
||||||
{
|
{
|
||||||
[AllowAnonymous]
|
[AllowAnonymous]
|
||||||
public class AccountController : Controller
|
public class AccountController : Controller
|
@ -10,13 +10,12 @@ using Microsoft.AspNetCore.Mvc;
|
|||||||
using Microsoft.AspNetCore.Mvc.Rendering;
|
using Microsoft.AspNetCore.Mvc.Rendering;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Microsoft.Extensions.Options;
|
using Microsoft.Extensions.Options;
|
||||||
using nuget_host.Data;
|
using isn.Data;
|
||||||
using nuget_host.Entities;
|
using isn.Entities;
|
||||||
using nuget_host.Data;
|
using isn.Data.ApiKeys;
|
||||||
using nuget_host.Data.ApiKeys;
|
|
||||||
|
|
||||||
|
|
||||||
namespace nuget_host.Controllers
|
namespace isn.Controllers
|
||||||
{
|
{
|
||||||
[Authorize]
|
[Authorize]
|
||||||
public class ApiKeysController : Controller
|
public class ApiKeysController : Controller
|
@ -2,12 +2,14 @@
|
|||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Microsoft.Extensions.Options;
|
using Microsoft.Extensions.Options;
|
||||||
using nuget_host.Entities;
|
using isn.Entities;
|
||||||
using nuget_host.Data;
|
using isn.Data;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using nuget_host.ViewModels;
|
using isn.ViewModels;
|
||||||
|
using Unleash.ClientFactory;
|
||||||
|
using Unleash;
|
||||||
|
|
||||||
namespace nuget_host.Controllers
|
namespace isn.Controllers
|
||||||
{
|
{
|
||||||
public class HomeController : Controller
|
public class HomeController : Controller
|
||||||
{
|
{
|
||||||
@ -32,7 +34,8 @@ namespace nuget_host.Controllers
|
|||||||
public IActionResult Index()
|
public IActionResult Index()
|
||||||
{
|
{
|
||||||
return View(new HomeIndexViewModel{
|
return View(new HomeIndexViewModel{
|
||||||
PkgCount = _dbContext.Packages.Count()
|
PkgCount = _dbContext.Packages.Count(),
|
||||||
|
UnleashClient = Startup.UnleashĈlient
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -1,9 +1,9 @@
|
|||||||
using System;
|
using System;
|
||||||
using Microsoft.AspNetCore.Authorization;
|
using Microsoft.AspNetCore.Authorization;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using nuget_host.Data;
|
using isn.Data;
|
||||||
|
|
||||||
namespace nuget_host.Controllers
|
namespace isn.Controllers
|
||||||
{
|
{
|
||||||
|
|
||||||
public class NewUpdateController : Controller
|
public class NewUpdateController : Controller
|
@ -4,10 +4,10 @@ using System.Threading.Tasks;
|
|||||||
using Microsoft.AspNetCore.Authorization;
|
using Microsoft.AspNetCore.Authorization;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using nuget_host.Data;
|
using isn.Data;
|
||||||
using nuget_host.ViewModels;
|
using isn.ViewModels;
|
||||||
|
|
||||||
namespace nuget_host
|
namespace isn
|
||||||
{
|
{
|
||||||
[AllowAnonymous]
|
[AllowAnonymous]
|
||||||
public class PackageVersionController : Controller
|
public class PackageVersionController : Controller
|
@ -11,10 +11,10 @@ using Microsoft.AspNetCore.Mvc;
|
|||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using NuGet.Packaging.Core;
|
using NuGet.Packaging.Core;
|
||||||
using NuGet.Versioning;
|
using NuGet.Versioning;
|
||||||
using nuget_host.Data;
|
using isn.Data;
|
||||||
using nuget_host.Helpers;
|
using isn.Helpers;
|
||||||
|
|
||||||
namespace nuget_host.Controllers
|
namespace isn.Controllers
|
||||||
{
|
{
|
||||||
|
|
||||||
public partial class PackagesController
|
public partial class PackagesController
|
||||||
@ -43,7 +43,7 @@ namespace nuget_host.Controllers
|
|||||||
{
|
{
|
||||||
string initpath = Path.Combine(Environment.GetEnvironmentVariable("TEMP") ??
|
string initpath = Path.Combine(Environment.GetEnvironmentVariable("TEMP") ??
|
||||||
Environment.GetEnvironmentVariable("TMP") ?? "/tmp",
|
Environment.GetEnvironmentVariable("TMP") ?? "/tmp",
|
||||||
$"nuget_host-{Guid.NewGuid()}.nupkg");
|
$"isn-{Guid.NewGuid()}.nupkg");
|
||||||
|
|
||||||
using (FileStream fw = new FileStream(initpath, FileMode.Create))
|
using (FileStream fw = new FileStream(initpath, FileMode.Create))
|
||||||
{
|
{
|
||||||
@ -69,6 +69,7 @@ namespace nuget_host.Controllers
|
|||||||
var types = reader.GetPackageTypes();
|
var types = reader.GetPackageTypes();
|
||||||
pkgid = reader.GetId();
|
pkgid = reader.GetId();
|
||||||
version = reader.GetVersion();
|
version = reader.GetVersion();
|
||||||
|
|
||||||
string pkgidpath = Path.Combine(nugetSettings.PackagesRootDir,
|
string pkgidpath = Path.Combine(nugetSettings.PackagesRootDir,
|
||||||
pkgid);
|
pkgid);
|
||||||
pkgpath = Path.Combine(pkgidpath, version.ToFullString());
|
pkgpath = Path.Combine(pkgidpath, version.ToFullString());
|
@ -8,22 +8,33 @@ using Microsoft.EntityFrameworkCore;
|
|||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Microsoft.Extensions.Options;
|
using Microsoft.Extensions.Options;
|
||||||
using NuGet.Versioning;
|
using NuGet.Versioning;
|
||||||
using nuget_host.Data;
|
using isn.Data;
|
||||||
using nuget_host.Entities;
|
using isn.Entities;
|
||||||
|
using Unleash.ClientFactory;
|
||||||
|
using Unleash;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using isnd.Services;
|
||||||
|
|
||||||
namespace nuget_host.Controllers
|
namespace isn.Controllers
|
||||||
{
|
{
|
||||||
|
|
||||||
[AllowAnonymous]
|
[AllowAnonymous]
|
||||||
public partial class PackagesController : Controller
|
public partial class PackagesController : Controller
|
||||||
{
|
{
|
||||||
|
const int maxTake = 100;
|
||||||
|
|
||||||
|
const string _pkgRootPrefix = "~/package";
|
||||||
|
const string defaultSemVer = "2.0.0";
|
||||||
|
private readonly Resource[] ressources;
|
||||||
private readonly ILogger<PackagesController> logger;
|
private readonly ILogger<PackagesController> logger;
|
||||||
private readonly IDataProtector protector;
|
private readonly IDataProtector protector;
|
||||||
|
|
||||||
private readonly NugetSettings nugetSettings;
|
private readonly NugetSettings nugetSettings;
|
||||||
ApplicationDbContext dbContext;
|
ApplicationDbContext dbContext;
|
||||||
|
private PackageManager packageManager;
|
||||||
|
|
||||||
public PackagesController(
|
public PackagesController(
|
||||||
|
PackageManager packageManager,
|
||||||
ILoggerFactory loggerFactory,
|
ILoggerFactory loggerFactory,
|
||||||
IDataProtectionProvider provider,
|
IDataProtectionProvider provider,
|
||||||
IOptions<NugetSettings> nugetOptions,
|
IOptions<NugetSettings> nugetOptions,
|
||||||
@ -33,39 +44,18 @@ namespace nuget_host.Controllers
|
|||||||
nugetSettings = nugetOptions.Value;
|
nugetSettings = nugetOptions.Value;
|
||||||
protector = provider.CreateProtector(nugetSettings.ProtectionTitle);
|
protector = provider.CreateProtector(nugetSettings.ProtectionTitle);
|
||||||
this.dbContext = dbContext;
|
this.dbContext = dbContext;
|
||||||
|
this.packageManager = packageManager;
|
||||||
|
|
||||||
|
ressources = packageManager.GetResources(Startup.UnleashĈlient).ToArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
const string defaultSemVer = "2.0.0";
|
// dotnet add . package -s http://localhost:5000/packages isn
|
||||||
// dotnet add . package -s http://localhost:5000/packages applec
|
// packages/FindPackagesById()?id='isn'&semVerLevel=2.0.0
|
||||||
// packages/FindPackagesById()?id='applec'&semVerLevel=2.0.0
|
|
||||||
|
|
||||||
// Search
|
// Search
|
||||||
// GET {@id}?q={QUERY}&skip={SKIP}&take={TAKE}&prerelease={PRERELEASE}&semVerLevel={SEMVERLEVEL}&packageType={PACKAGETYPE}
|
// GET {@id}?q={QUERY}&skip={SKIP}&take={TAKE}&prerelease={PRERELEASE}&semVerLevel={SEMVERLEVEL}&packageType={PACKAGETYPE}
|
||||||
|
|
||||||
|
|
||||||
private readonly Resource[] ressources = {
|
|
||||||
new Resource {
|
|
||||||
id = "package/index.json",
|
|
||||||
type ="SearchAutocompleteService/3.5.0",
|
|
||||||
comment = "Auto complete service"
|
|
||||||
},
|
|
||||||
new Resource {
|
|
||||||
id = "package/index.json",
|
|
||||||
type ="SearchQueryService/3.5.0",
|
|
||||||
comment = "Search Query service"
|
|
||||||
},
|
|
||||||
new Resource {
|
|
||||||
id = "package",
|
|
||||||
type ="PackagePublish/2.0.0",
|
|
||||||
comment = "Package Publish service"
|
|
||||||
},
|
|
||||||
new Resource {
|
|
||||||
id = "package",
|
|
||||||
type = "PackageBaseAddress/3.0.0",
|
|
||||||
comment = "Package Base Address service"
|
|
||||||
}
|
|
||||||
};
|
|
||||||
const string _pkgRootPrefix = "~/package";
|
|
||||||
[HttpGet("~/index.json")]
|
[HttpGet("~/index.json")]
|
||||||
public IActionResult ApiIndex()
|
public IActionResult ApiIndex()
|
||||||
{
|
{
|
||||||
@ -92,51 +82,11 @@ namespace nuget_host.Controllers
|
|||||||
}
|
}
|
||||||
if (ModelState.IsValid)
|
if (ModelState.IsValid)
|
||||||
{
|
{
|
||||||
|
return Ok(packageManager.SearchByName(q,skip,take,prerelease,packageType));
|
||||||
var scope = dbContext.Packages
|
|
||||||
.Include(p => p.Versions)
|
|
||||||
.Where(
|
|
||||||
p => (CamelCaseMatch(p.Id, q) || SeparatedByMinusMatch(p.Id, q))
|
|
||||||
&& (prerelease || p.Versions.Any(v => !v.IsPrerelease))
|
|
||||||
&& (packageType == null || p.Versions.Any(v => v.Type == packageType))
|
|
||||||
);
|
|
||||||
var result = new
|
|
||||||
{
|
|
||||||
totalHits = scope.Count(),
|
|
||||||
data = scope.OrderBy(p => p.Id)
|
|
||||||
.Skip(skip).Take(take).ToArray()
|
|
||||||
};
|
|
||||||
return Ok(result);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
return BadRequest(new { error = ModelState });
|
return BadRequest(new { error = ModelState });
|
||||||
}
|
}
|
||||||
|
|
||||||
protected static bool CamelCaseMatch(string id, string q)
|
|
||||||
{
|
|
||||||
// Assert.False (q==null);
|
|
||||||
string query = q;
|
|
||||||
if (query.Length == 0) return false;
|
|
||||||
|
|
||||||
while (id.Length > 0)
|
|
||||||
{
|
|
||||||
int i = 0;
|
|
||||||
while (id.Length > i && char.IsLower(id[i])) i++;
|
|
||||||
if (i == 0) break;
|
|
||||||
id = id.Substring(i);
|
|
||||||
if (id.StartsWith(q, System.StringComparison.OrdinalIgnoreCase)) return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
protected static bool SeparatedByMinusMatch(string id, string q)
|
|
||||||
{
|
|
||||||
foreach (var part in id.Split('-'))
|
|
||||||
{
|
|
||||||
if (part.StartsWith(q, System.StringComparison.OrdinalIgnoreCase)) return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
const int maxTake = 100;
|
|
||||||
// GET /autocomplete?id=nuget.protocol&prerelease=true
|
// GET /autocomplete?id=nuget.protocol&prerelease=true
|
||||||
[HttpGet(_pkgRootPrefix + "/autocomplete")]
|
[HttpGet(_pkgRootPrefix + "/autocomplete")]
|
||||||
public IActionResult AutoComplete(
|
public IActionResult AutoComplete(
|
||||||
@ -152,18 +102,8 @@ namespace nuget_host.Controllers
|
|||||||
ModelState.AddModelError("take", "Maximum exceeded");
|
ModelState.AddModelError("take", "Maximum exceeded");
|
||||||
return BadRequest(ModelState);
|
return BadRequest(ModelState);
|
||||||
}
|
}
|
||||||
var scope = dbContext.PackageVersions.Where(
|
|
||||||
v => v.PackageId == id
|
return Ok(packageManager.AutoComplete(id,skip,take,prerelease,packageType));
|
||||||
&& (prerelease || !v.IsPrerelease)
|
|
||||||
&& (packageType == null || v.Type == packageType)
|
|
||||||
)
|
|
||||||
.OrderBy(v => v.FullString);
|
|
||||||
return Ok(new
|
|
||||||
{
|
|
||||||
data = scope.Select(v => v.FullString)
|
|
||||||
.Skip(skip).Take(take).ToArray(),
|
|
||||||
totalHits = scope.Count()
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
// TODO GET {@id}/{LOWER_ID}/index.json
|
// TODO GET {@id}/{LOWER_ID}/index.json
|
||||||
// LOWER_ID URL string yes The package ID, lowercased
|
// LOWER_ID URL string yes The package ID, lowercased
|
||||||
@ -192,18 +132,8 @@ namespace nuget_host.Controllers
|
|||||||
}
|
}
|
||||||
return Ok(new
|
return Ok(new
|
||||||
{
|
{
|
||||||
// TODO stocker MetaData plutôt que FullString en base,
|
versions = packageManager.GetVersions(
|
||||||
// et en profiter pour corriger ce listing
|
id, parsedVersion, prerelease, packageType, skip, take)
|
||||||
versions =
|
|
||||||
dbContext.PackageVersions.Where(
|
|
||||||
v => v.PackageId == id
|
|
||||||
&& (prerelease || !v.IsPrerelease)
|
|
||||||
&& (packageType == null || v.Type == packageType)
|
|
||||||
&& (parsedVersion.CompareTo(new SemanticVersion(v.Major, v.Minor, v.Patch)) < 0)
|
|
||||||
)
|
|
||||||
.OrderBy(v => v.FullString)
|
|
||||||
.Select(v => v.FullString)
|
|
||||||
.Skip(skip).Take(take).ToArray()
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
namespace nuget_host.Controllers
|
namespace isn.Controllers
|
||||||
{
|
{
|
||||||
internal class Resource
|
internal class Resource
|
||||||
{
|
{
|
@ -2,7 +2,7 @@ using System;
|
|||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
namespace nuget_host.Controllers
|
namespace isn.Controllers
|
||||||
{
|
{
|
||||||
internal class SafeNameAttribute : ValidationAttribute
|
internal class SafeNameAttribute : ValidationAttribute
|
||||||
{
|
{
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace nuget_host.Data
|
namespace isn.Data
|
||||||
{
|
{
|
||||||
public class AccountOptions
|
public class AccountOptions
|
||||||
{
|
{
|
@ -2,7 +2,7 @@
|
|||||||
// Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
|
||||||
|
|
||||||
|
|
||||||
namespace nuget_host.Data
|
namespace isn.Data
|
||||||
{
|
{
|
||||||
public class ExternalProvider
|
public class ExternalProvider
|
||||||
{
|
{
|
@ -2,7 +2,7 @@
|
|||||||
// Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
|
||||||
|
|
||||||
|
|
||||||
namespace nuget_host.Data
|
namespace isn.Data
|
||||||
{
|
{
|
||||||
public class LoggedOutViewModel
|
public class LoggedOutViewModel
|
||||||
{
|
{
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
namespace nuget_host.Data
|
namespace isn.Data
|
||||||
{
|
{
|
||||||
public class LoginInputModel
|
public class LoginInputModel
|
||||||
{
|
{
|
@ -6,7 +6,7 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
namespace nuget_host.Data
|
namespace isn.Data
|
||||||
{
|
{
|
||||||
public class LoginViewModel : LoginInputModel
|
public class LoginViewModel : LoginInputModel
|
||||||
{
|
{
|
@ -2,7 +2,7 @@
|
|||||||
// Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
|
||||||
|
|
||||||
|
|
||||||
namespace nuget_host.Data
|
namespace isn.Data
|
||||||
{
|
{
|
||||||
public class LogoutInputModel
|
public class LogoutInputModel
|
||||||
{
|
{
|
@ -2,7 +2,7 @@
|
|||||||
// Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
|
||||||
|
|
||||||
|
|
||||||
namespace nuget_host.Data
|
namespace isn.Data
|
||||||
{
|
{
|
||||||
public class LogoutViewModel : LogoutInputModel
|
public class LogoutViewModel : LogoutInputModel
|
||||||
{
|
{
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
namespace nuget_host.Data
|
namespace isn.Data
|
||||||
{
|
{
|
||||||
public class RedirectViewModel
|
public class RedirectViewModel
|
||||||
{
|
{
|
@ -4,7 +4,7 @@ using System.ComponentModel.DataAnnotations;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace nuget_host.Data
|
namespace isn.Data
|
||||||
{
|
{
|
||||||
public class RegisterViewModel
|
public class RegisterViewModel
|
||||||
{
|
{
|
@ -2,7 +2,7 @@ using System;
|
|||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.ComponentModel.DataAnnotations.Schema;
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
namespace nuget_host.Data.ApiKeys
|
namespace isn.Data.ApiKeys
|
||||||
{
|
{
|
||||||
public class ApiKey
|
public class ApiKey
|
||||||
{
|
{
|
@ -1,6 +1,6 @@
|
|||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
namespace nuget_host.Data.ApiKeys
|
namespace isn.Data.ApiKeys
|
||||||
{
|
{
|
||||||
public class ApiKeyViewModel
|
public class ApiKeyViewModel
|
||||||
{
|
{
|
@ -1,6 +1,6 @@
|
|||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
namespace nuget_host.Data.ApiKeys
|
namespace isn.Data.ApiKeys
|
||||||
{
|
{
|
||||||
public class CreateModel
|
public class CreateModel
|
||||||
{
|
{
|
@ -1,4 +1,4 @@
|
|||||||
namespace nuget_host.Data.ApiKeys
|
namespace isn.Data.ApiKeys
|
||||||
{
|
{
|
||||||
public class DeleteModel
|
public class DeleteModel
|
||||||
{
|
{
|
@ -1,4 +1,4 @@
|
|||||||
namespace nuget_host.Data.ApiKeys
|
namespace isn.Data.ApiKeys
|
||||||
{
|
{
|
||||||
public class DetailModel : ApiKeyViewModel
|
public class DetailModel : ApiKeyViewModel
|
||||||
{
|
{
|
@ -1,4 +1,4 @@
|
|||||||
namespace nuget_host.Data.ApiKeys
|
namespace isn.Data.ApiKeys
|
||||||
{
|
{
|
||||||
public class EditModel
|
public class EditModel
|
||||||
{
|
{
|
@ -1,6 +1,6 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
|
||||||
namespace nuget_host.Data.ApiKeys
|
namespace isn.Data.ApiKeys
|
||||||
{
|
{
|
||||||
public class IndexModel
|
public class IndexModel
|
||||||
{
|
{
|
@ -4,10 +4,10 @@ using System.Text;
|
|||||||
using Microsoft.AspNetCore.Identity;
|
using Microsoft.AspNetCore.Identity;
|
||||||
using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
|
using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using nuget_host.Data;
|
using isn.Data;
|
||||||
using nuget_host.Data.ApiKeys;
|
using isn.Data.ApiKeys;
|
||||||
|
|
||||||
namespace nuget_host.Data
|
namespace isn.Data
|
||||||
{
|
{
|
||||||
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
|
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
|
||||||
{
|
{
|
@ -1,6 +1,6 @@
|
|||||||
using Microsoft.AspNetCore.Identity;
|
using Microsoft.AspNetCore.Identity;
|
||||||
|
|
||||||
namespace nuget_host.Data
|
namespace isn.Data
|
||||||
{
|
{
|
||||||
// Add profile data for application users by adding properties to the ApplicationUser class
|
// Add profile data for application users by adding properties to the ApplicationUser class
|
||||||
public class ApplicationUser : IdentityUser
|
public class ApplicationUser : IdentityUser
|
@ -1,6 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace nuget_host.Data
|
namespace isn.Data
|
||||||
{
|
{
|
||||||
public class NewReleaseInfo
|
public class NewReleaseInfo
|
||||||
{
|
{
|
@ -3,7 +3,7 @@ using System.ComponentModel.DataAnnotations;
|
|||||||
using System.ComponentModel.DataAnnotations.Schema;
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
namespace nuget_host.Data
|
namespace isn.Data
|
||||||
{
|
{
|
||||||
public class Package
|
public class Package
|
||||||
{
|
{
|
@ -2,7 +2,7 @@ using System.ComponentModel.DataAnnotations;
|
|||||||
using System.ComponentModel.DataAnnotations.Schema;
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
namespace nuget_host.Data
|
namespace isn.Data
|
||||||
{
|
{
|
||||||
public class PackageVersion
|
public class PackageVersion
|
||||||
{
|
{
|
@ -1,4 +1,4 @@
|
|||||||
namespace nuget_host.Data.Roles
|
namespace isn.Data.Roles
|
||||||
{
|
{
|
||||||
public class AdminStartupList
|
public class AdminStartupList
|
||||||
{
|
{
|
@ -1,4 +1,4 @@
|
|||||||
namespace nuget_host.Entities
|
namespace isn.Entities
|
||||||
{
|
{
|
||||||
public class NugetSettings
|
public class NugetSettings
|
||||||
{
|
{
|
@ -1,4 +1,4 @@
|
|||||||
namespace nuget_host.Entities
|
namespace isn.Entities
|
||||||
{
|
{
|
||||||
public class SmtpSettings
|
public class SmtpSettings
|
||||||
{
|
{
|
8
src/isnd/Entities/UnleashClientSettings.cs
Normal file
8
src/isnd/Entities/UnleashClientSettings.cs
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
namespace isnd.Entities
|
||||||
|
{
|
||||||
|
public class UnleashClientSettings
|
||||||
|
{
|
||||||
|
public string ClientApiKey { get; set; }
|
||||||
|
public string ApiUrl { get; set; }
|
||||||
|
}
|
||||||
|
}
|
@ -1,7 +1,7 @@
|
|||||||
using System;
|
using System;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
|
||||||
namespace nuget_host.Data
|
namespace isn.Data
|
||||||
{
|
{
|
||||||
public static class Extensions
|
public static class Extensions
|
||||||
{
|
{
|
@ -2,7 +2,7 @@ using System.Linq;
|
|||||||
using System.Xml.Linq;
|
using System.Xml.Linq;
|
||||||
using NuGet.Packaging.Core;
|
using NuGet.Packaging.Core;
|
||||||
|
|
||||||
namespace nuget_host.Helpers
|
namespace isn.Helpers
|
||||||
{
|
{
|
||||||
public static class NuspecCoreReaderHelpers
|
public static class NuspecCoreReaderHelpers
|
||||||
{
|
{
|
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace nuget_host.Interfaces
|
namespace isn.Interfaces
|
||||||
{
|
{
|
||||||
public interface IMailer
|
public interface IMailer
|
||||||
{
|
{
|
@ -5,7 +5,7 @@ using Microsoft.EntityFrameworkCore.Infrastructure;
|
|||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
using Microsoft.EntityFrameworkCore.Migrations;
|
||||||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
||||||
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||||
using nuget_host.Data;
|
using isn.Data;
|
||||||
|
|
||||||
namespace nugethost.Migrations
|
namespace nugethost.Migrations
|
||||||
{
|
{
|
||||||
@ -128,7 +128,7 @@ namespace nugethost.Migrations
|
|||||||
b.ToTable("AspNetUserTokens");
|
b.ToTable("AspNetUserTokens");
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("nuget_host.Data.ApplicationUser", b =>
|
modelBuilder.Entity("isn.Data.ApplicationUser", b =>
|
||||||
{
|
{
|
||||||
b.Property<string>("Id")
|
b.Property<string>("Id")
|
||||||
.ValueGeneratedOnAdd();
|
.ValueGeneratedOnAdd();
|
||||||
@ -190,7 +190,7 @@ namespace nugethost.Migrations
|
|||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<string>", b =>
|
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<string>", b =>
|
||||||
{
|
{
|
||||||
b.HasOne("nuget_host.Data.ApplicationUser")
|
b.HasOne("isn.Data.ApplicationUser")
|
||||||
.WithMany()
|
.WithMany()
|
||||||
.HasForeignKey("UserId")
|
.HasForeignKey("UserId")
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
@ -198,7 +198,7 @@ namespace nugethost.Migrations
|
|||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b =>
|
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b =>
|
||||||
{
|
{
|
||||||
b.HasOne("nuget_host.Data.ApplicationUser")
|
b.HasOne("isn.Data.ApplicationUser")
|
||||||
.WithMany()
|
.WithMany()
|
||||||
.HasForeignKey("UserId")
|
.HasForeignKey("UserId")
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
@ -211,7 +211,7 @@ namespace nugethost.Migrations
|
|||||||
.HasForeignKey("RoleId")
|
.HasForeignKey("RoleId")
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
|
|
||||||
b.HasOne("nuget_host.Data.ApplicationUser")
|
b.HasOne("isn.Data.ApplicationUser")
|
||||||
.WithMany()
|
.WithMany()
|
||||||
.HasForeignKey("UserId")
|
.HasForeignKey("UserId")
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
@ -219,7 +219,7 @@ namespace nugethost.Migrations
|
|||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b =>
|
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b =>
|
||||||
{
|
{
|
||||||
b.HasOne("nuget_host.Data.ApplicationUser")
|
b.HasOne("isn.Data.ApplicationUser")
|
||||||
.WithMany()
|
.WithMany()
|
||||||
.HasForeignKey("UserId")
|
.HasForeignKey("UserId")
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
.OnDelete(DeleteBehavior.Cascade);
|
@ -5,7 +5,7 @@ using Microsoft.EntityFrameworkCore.Infrastructure;
|
|||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
using Microsoft.EntityFrameworkCore.Migrations;
|
||||||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
||||||
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||||
using nuget_host.Data;
|
using isn.Data;
|
||||||
|
|
||||||
namespace nugethost.Migrations
|
namespace nugethost.Migrations
|
||||||
{
|
{
|
||||||
@ -128,7 +128,7 @@ namespace nugethost.Migrations
|
|||||||
b.ToTable("AspNetUserTokens");
|
b.ToTable("AspNetUserTokens");
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("nuget_host.Data.ApiKey", b =>
|
modelBuilder.Entity("isn.Data.ApiKey", b =>
|
||||||
{
|
{
|
||||||
b.Property<string>("Id")
|
b.Property<string>("Id")
|
||||||
.ValueGeneratedOnAdd();
|
.ValueGeneratedOnAdd();
|
||||||
@ -143,7 +143,7 @@ namespace nugethost.Migrations
|
|||||||
b.ToTable("ApiKeys");
|
b.ToTable("ApiKeys");
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("nuget_host.Data.ApplicationUser", b =>
|
modelBuilder.Entity("isn.Data.ApplicationUser", b =>
|
||||||
{
|
{
|
||||||
b.Property<string>("Id")
|
b.Property<string>("Id")
|
||||||
.ValueGeneratedOnAdd();
|
.ValueGeneratedOnAdd();
|
||||||
@ -205,7 +205,7 @@ namespace nugethost.Migrations
|
|||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<string>", b =>
|
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<string>", b =>
|
||||||
{
|
{
|
||||||
b.HasOne("nuget_host.Data.ApplicationUser")
|
b.HasOne("isn.Data.ApplicationUser")
|
||||||
.WithMany()
|
.WithMany()
|
||||||
.HasForeignKey("UserId")
|
.HasForeignKey("UserId")
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
@ -213,7 +213,7 @@ namespace nugethost.Migrations
|
|||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b =>
|
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b =>
|
||||||
{
|
{
|
||||||
b.HasOne("nuget_host.Data.ApplicationUser")
|
b.HasOne("isn.Data.ApplicationUser")
|
||||||
.WithMany()
|
.WithMany()
|
||||||
.HasForeignKey("UserId")
|
.HasForeignKey("UserId")
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
@ -226,7 +226,7 @@ namespace nugethost.Migrations
|
|||||||
.HasForeignKey("RoleId")
|
.HasForeignKey("RoleId")
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
|
|
||||||
b.HasOne("nuget_host.Data.ApplicationUser")
|
b.HasOne("isn.Data.ApplicationUser")
|
||||||
.WithMany()
|
.WithMany()
|
||||||
.HasForeignKey("UserId")
|
.HasForeignKey("UserId")
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
@ -234,15 +234,15 @@ namespace nugethost.Migrations
|
|||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b =>
|
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b =>
|
||||||
{
|
{
|
||||||
b.HasOne("nuget_host.Data.ApplicationUser")
|
b.HasOne("isn.Data.ApplicationUser")
|
||||||
.WithMany()
|
.WithMany()
|
||||||
.HasForeignKey("UserId")
|
.HasForeignKey("UserId")
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("nuget_host.Data.ApiKey", b =>
|
modelBuilder.Entity("isn.Data.ApiKey", b =>
|
||||||
{
|
{
|
||||||
b.HasOne("nuget_host.Data.ApplicationUser", "User")
|
b.HasOne("isn.Data.ApplicationUser", "User")
|
||||||
.WithMany()
|
.WithMany()
|
||||||
.HasForeignKey("UserId")
|
.HasForeignKey("UserId")
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
.OnDelete(DeleteBehavior.Cascade);
|
@ -5,7 +5,7 @@ using Microsoft.EntityFrameworkCore.Infrastructure;
|
|||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
using Microsoft.EntityFrameworkCore.Migrations;
|
||||||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
||||||
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||||
using nuget_host.Data;
|
using isn.Data;
|
||||||
|
|
||||||
namespace nugethost.Migrations
|
namespace nugethost.Migrations
|
||||||
{
|
{
|
||||||
@ -128,7 +128,7 @@ namespace nugethost.Migrations
|
|||||||
b.ToTable("AspNetUserTokens");
|
b.ToTable("AspNetUserTokens");
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("nuget_host.Data.ApiKeys.ApiKey", b =>
|
modelBuilder.Entity("isn.Data.ApiKeys.ApiKey", b =>
|
||||||
{
|
{
|
||||||
b.Property<string>("Id")
|
b.Property<string>("Id")
|
||||||
.ValueGeneratedOnAdd();
|
.ValueGeneratedOnAdd();
|
||||||
@ -149,7 +149,7 @@ namespace nugethost.Migrations
|
|||||||
b.ToTable("ApiKeys");
|
b.ToTable("ApiKeys");
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("nuget_host.Data.ApplicationUser", b =>
|
modelBuilder.Entity("isn.Data.ApplicationUser", b =>
|
||||||
{
|
{
|
||||||
b.Property<string>("Id")
|
b.Property<string>("Id")
|
||||||
.ValueGeneratedOnAdd();
|
.ValueGeneratedOnAdd();
|
||||||
@ -211,7 +211,7 @@ namespace nugethost.Migrations
|
|||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<string>", b =>
|
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<string>", b =>
|
||||||
{
|
{
|
||||||
b.HasOne("nuget_host.Data.ApplicationUser")
|
b.HasOne("isn.Data.ApplicationUser")
|
||||||
.WithMany()
|
.WithMany()
|
||||||
.HasForeignKey("UserId")
|
.HasForeignKey("UserId")
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
@ -219,7 +219,7 @@ namespace nugethost.Migrations
|
|||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b =>
|
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b =>
|
||||||
{
|
{
|
||||||
b.HasOne("nuget_host.Data.ApplicationUser")
|
b.HasOne("isn.Data.ApplicationUser")
|
||||||
.WithMany()
|
.WithMany()
|
||||||
.HasForeignKey("UserId")
|
.HasForeignKey("UserId")
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
@ -232,7 +232,7 @@ namespace nugethost.Migrations
|
|||||||
.HasForeignKey("RoleId")
|
.HasForeignKey("RoleId")
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
|
|
||||||
b.HasOne("nuget_host.Data.ApplicationUser")
|
b.HasOne("isn.Data.ApplicationUser")
|
||||||
.WithMany()
|
.WithMany()
|
||||||
.HasForeignKey("UserId")
|
.HasForeignKey("UserId")
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
@ -240,15 +240,15 @@ namespace nugethost.Migrations
|
|||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b =>
|
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b =>
|
||||||
{
|
{
|
||||||
b.HasOne("nuget_host.Data.ApplicationUser")
|
b.HasOne("isn.Data.ApplicationUser")
|
||||||
.WithMany()
|
.WithMany()
|
||||||
.HasForeignKey("UserId")
|
.HasForeignKey("UserId")
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("nuget_host.Data.ApiKeys.ApiKey", b =>
|
modelBuilder.Entity("isn.Data.ApiKeys.ApiKey", b =>
|
||||||
{
|
{
|
||||||
b.HasOne("nuget_host.Data.ApplicationUser", "User")
|
b.HasOne("isn.Data.ApplicationUser", "User")
|
||||||
.WithMany()
|
.WithMany()
|
||||||
.HasForeignKey("UserId")
|
.HasForeignKey("UserId")
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
.OnDelete(DeleteBehavior.Cascade);
|
@ -5,7 +5,7 @@ using Microsoft.EntityFrameworkCore.Infrastructure;
|
|||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
using Microsoft.EntityFrameworkCore.Migrations;
|
||||||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
||||||
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||||
using nuget_host.Data;
|
using isn.Data;
|
||||||
|
|
||||||
namespace nugethost.Migrations
|
namespace nugethost.Migrations
|
||||||
{
|
{
|
||||||
@ -128,7 +128,7 @@ namespace nugethost.Migrations
|
|||||||
b.ToTable("AspNetUserTokens");
|
b.ToTable("AspNetUserTokens");
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("nuget_host.Data.ApiKeys.ApiKey", b =>
|
modelBuilder.Entity("isn.Data.ApiKeys.ApiKey", b =>
|
||||||
{
|
{
|
||||||
b.Property<string>("Id")
|
b.Property<string>("Id")
|
||||||
.ValueGeneratedOnAdd();
|
.ValueGeneratedOnAdd();
|
||||||
@ -149,7 +149,7 @@ namespace nugethost.Migrations
|
|||||||
b.ToTable("ApiKeys");
|
b.ToTable("ApiKeys");
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("nuget_host.Data.ApplicationUser", b =>
|
modelBuilder.Entity("isn.Data.ApplicationUser", b =>
|
||||||
{
|
{
|
||||||
b.Property<string>("Id")
|
b.Property<string>("Id")
|
||||||
.ValueGeneratedOnAdd();
|
.ValueGeneratedOnAdd();
|
||||||
@ -201,7 +201,7 @@ namespace nugethost.Migrations
|
|||||||
b.ToTable("AspNetUsers");
|
b.ToTable("AspNetUsers");
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("nuget_host.Data.Package", b =>
|
modelBuilder.Entity("isn.Data.Package", b =>
|
||||||
{
|
{
|
||||||
b.Property<string>("Id")
|
b.Property<string>("Id")
|
||||||
.ValueGeneratedOnAdd();
|
.ValueGeneratedOnAdd();
|
||||||
@ -218,7 +218,7 @@ namespace nugethost.Migrations
|
|||||||
b.ToTable("Packages");
|
b.ToTable("Packages");
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("nuget_host.Data.PackageVersion", b =>
|
modelBuilder.Entity("isn.Data.PackageVersion", b =>
|
||||||
{
|
{
|
||||||
b.Property<string>("FullString")
|
b.Property<string>("FullString")
|
||||||
.ValueGeneratedOnAdd()
|
.ValueGeneratedOnAdd()
|
||||||
@ -252,7 +252,7 @@ namespace nugethost.Migrations
|
|||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<string>", b =>
|
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<string>", b =>
|
||||||
{
|
{
|
||||||
b.HasOne("nuget_host.Data.ApplicationUser")
|
b.HasOne("isn.Data.ApplicationUser")
|
||||||
.WithMany()
|
.WithMany()
|
||||||
.HasForeignKey("UserId")
|
.HasForeignKey("UserId")
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
@ -260,7 +260,7 @@ namespace nugethost.Migrations
|
|||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b =>
|
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b =>
|
||||||
{
|
{
|
||||||
b.HasOne("nuget_host.Data.ApplicationUser")
|
b.HasOne("isn.Data.ApplicationUser")
|
||||||
.WithMany()
|
.WithMany()
|
||||||
.HasForeignKey("UserId")
|
.HasForeignKey("UserId")
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
@ -273,7 +273,7 @@ namespace nugethost.Migrations
|
|||||||
.HasForeignKey("RoleId")
|
.HasForeignKey("RoleId")
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
|
|
||||||
b.HasOne("nuget_host.Data.ApplicationUser")
|
b.HasOne("isn.Data.ApplicationUser")
|
||||||
.WithMany()
|
.WithMany()
|
||||||
.HasForeignKey("UserId")
|
.HasForeignKey("UserId")
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
@ -281,31 +281,31 @@ namespace nugethost.Migrations
|
|||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b =>
|
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b =>
|
||||||
{
|
{
|
||||||
b.HasOne("nuget_host.Data.ApplicationUser")
|
b.HasOne("isn.Data.ApplicationUser")
|
||||||
.WithMany()
|
.WithMany()
|
||||||
.HasForeignKey("UserId")
|
.HasForeignKey("UserId")
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("nuget_host.Data.ApiKeys.ApiKey", b =>
|
modelBuilder.Entity("isn.Data.ApiKeys.ApiKey", b =>
|
||||||
{
|
{
|
||||||
b.HasOne("nuget_host.Data.ApplicationUser", "User")
|
b.HasOne("isn.Data.ApplicationUser", "User")
|
||||||
.WithMany()
|
.WithMany()
|
||||||
.HasForeignKey("UserId")
|
.HasForeignKey("UserId")
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("nuget_host.Data.Package", b =>
|
modelBuilder.Entity("isn.Data.Package", b =>
|
||||||
{
|
{
|
||||||
b.HasOne("nuget_host.Data.ApplicationUser", "Owner")
|
b.HasOne("isn.Data.ApplicationUser", "Owner")
|
||||||
.WithMany()
|
.WithMany()
|
||||||
.HasForeignKey("OwnerId")
|
.HasForeignKey("OwnerId")
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("nuget_host.Data.PackageVersion", b =>
|
modelBuilder.Entity("isn.Data.PackageVersion", b =>
|
||||||
{
|
{
|
||||||
b.HasOne("nuget_host.Data.Package", "Package")
|
b.HasOne("isn.Data.Package", "Package")
|
||||||
.WithMany()
|
.WithMany()
|
||||||
.HasForeignKey("PackageId")
|
.HasForeignKey("PackageId")
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
.OnDelete(DeleteBehavior.Cascade);
|
@ -5,7 +5,7 @@ using Microsoft.EntityFrameworkCore.Infrastructure;
|
|||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
using Microsoft.EntityFrameworkCore.Migrations;
|
||||||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
||||||
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||||
using nuget_host.Data;
|
using isn.Data;
|
||||||
|
|
||||||
namespace nugethost.Migrations
|
namespace nugethost.Migrations
|
||||||
{
|
{
|
||||||
@ -128,7 +128,7 @@ namespace nugethost.Migrations
|
|||||||
b.ToTable("AspNetUserTokens");
|
b.ToTable("AspNetUserTokens");
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("nuget_host.Data.ApiKeys.ApiKey", b =>
|
modelBuilder.Entity("isn.Data.ApiKeys.ApiKey", b =>
|
||||||
{
|
{
|
||||||
b.Property<string>("Id")
|
b.Property<string>("Id")
|
||||||
.ValueGeneratedOnAdd();
|
.ValueGeneratedOnAdd();
|
||||||
@ -149,7 +149,7 @@ namespace nugethost.Migrations
|
|||||||
b.ToTable("ApiKeys");
|
b.ToTable("ApiKeys");
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("nuget_host.Data.ApplicationUser", b =>
|
modelBuilder.Entity("isn.Data.ApplicationUser", b =>
|
||||||
{
|
{
|
||||||
b.Property<string>("Id")
|
b.Property<string>("Id")
|
||||||
.ValueGeneratedOnAdd();
|
.ValueGeneratedOnAdd();
|
||||||
@ -201,7 +201,7 @@ namespace nugethost.Migrations
|
|||||||
b.ToTable("AspNetUsers");
|
b.ToTable("AspNetUsers");
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("nuget_host.Data.Package", b =>
|
modelBuilder.Entity("isn.Data.Package", b =>
|
||||||
{
|
{
|
||||||
b.Property<string>("Id")
|
b.Property<string>("Id")
|
||||||
.ValueGeneratedOnAdd();
|
.ValueGeneratedOnAdd();
|
||||||
@ -218,7 +218,7 @@ namespace nugethost.Migrations
|
|||||||
b.ToTable("Packages");
|
b.ToTable("Packages");
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("nuget_host.Data.PackageVersion", b =>
|
modelBuilder.Entity("isn.Data.PackageVersion", b =>
|
||||||
{
|
{
|
||||||
b.Property<string>("PackageId");
|
b.Property<string>("PackageId");
|
||||||
|
|
||||||
@ -248,7 +248,7 @@ namespace nugethost.Migrations
|
|||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<string>", b =>
|
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<string>", b =>
|
||||||
{
|
{
|
||||||
b.HasOne("nuget_host.Data.ApplicationUser")
|
b.HasOne("isn.Data.ApplicationUser")
|
||||||
.WithMany()
|
.WithMany()
|
||||||
.HasForeignKey("UserId")
|
.HasForeignKey("UserId")
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
@ -256,7 +256,7 @@ namespace nugethost.Migrations
|
|||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b =>
|
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b =>
|
||||||
{
|
{
|
||||||
b.HasOne("nuget_host.Data.ApplicationUser")
|
b.HasOne("isn.Data.ApplicationUser")
|
||||||
.WithMany()
|
.WithMany()
|
||||||
.HasForeignKey("UserId")
|
.HasForeignKey("UserId")
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
@ -269,7 +269,7 @@ namespace nugethost.Migrations
|
|||||||
.HasForeignKey("RoleId")
|
.HasForeignKey("RoleId")
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
|
|
||||||
b.HasOne("nuget_host.Data.ApplicationUser")
|
b.HasOne("isn.Data.ApplicationUser")
|
||||||
.WithMany()
|
.WithMany()
|
||||||
.HasForeignKey("UserId")
|
.HasForeignKey("UserId")
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
@ -277,31 +277,31 @@ namespace nugethost.Migrations
|
|||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b =>
|
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b =>
|
||||||
{
|
{
|
||||||
b.HasOne("nuget_host.Data.ApplicationUser")
|
b.HasOne("isn.Data.ApplicationUser")
|
||||||
.WithMany()
|
.WithMany()
|
||||||
.HasForeignKey("UserId")
|
.HasForeignKey("UserId")
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("nuget_host.Data.ApiKeys.ApiKey", b =>
|
modelBuilder.Entity("isn.Data.ApiKeys.ApiKey", b =>
|
||||||
{
|
{
|
||||||
b.HasOne("nuget_host.Data.ApplicationUser", "User")
|
b.HasOne("isn.Data.ApplicationUser", "User")
|
||||||
.WithMany()
|
.WithMany()
|
||||||
.HasForeignKey("UserId")
|
.HasForeignKey("UserId")
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("nuget_host.Data.Package", b =>
|
modelBuilder.Entity("isn.Data.Package", b =>
|
||||||
{
|
{
|
||||||
b.HasOne("nuget_host.Data.ApplicationUser", "Owner")
|
b.HasOne("isn.Data.ApplicationUser", "Owner")
|
||||||
.WithMany()
|
.WithMany()
|
||||||
.HasForeignKey("OwnerId")
|
.HasForeignKey("OwnerId")
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("nuget_host.Data.PackageVersion", b =>
|
modelBuilder.Entity("isn.Data.PackageVersion", b =>
|
||||||
{
|
{
|
||||||
b.HasOne("nuget_host.Data.Package", "Package")
|
b.HasOne("isn.Data.Package", "Package")
|
||||||
.WithMany()
|
.WithMany()
|
||||||
.HasForeignKey("PackageId")
|
.HasForeignKey("PackageId")
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
.OnDelete(DeleteBehavior.Cascade);
|
@ -5,7 +5,7 @@ using Microsoft.EntityFrameworkCore.Infrastructure;
|
|||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
using Microsoft.EntityFrameworkCore.Migrations;
|
||||||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
||||||
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||||
using nuget_host.Data;
|
using isn.Data;
|
||||||
|
|
||||||
namespace nugethost.Migrations
|
namespace nugethost.Migrations
|
||||||
{
|
{
|
||||||
@ -128,7 +128,7 @@ namespace nugethost.Migrations
|
|||||||
b.ToTable("AspNetUserTokens");
|
b.ToTable("AspNetUserTokens");
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("nuget_host.Data.ApiKeys.ApiKey", b =>
|
modelBuilder.Entity("isn.Data.ApiKeys.ApiKey", b =>
|
||||||
{
|
{
|
||||||
b.Property<string>("Id")
|
b.Property<string>("Id")
|
||||||
.ValueGeneratedOnAdd();
|
.ValueGeneratedOnAdd();
|
||||||
@ -149,7 +149,7 @@ namespace nugethost.Migrations
|
|||||||
b.ToTable("ApiKeys");
|
b.ToTable("ApiKeys");
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("nuget_host.Data.ApplicationUser", b =>
|
modelBuilder.Entity("isn.Data.ApplicationUser", b =>
|
||||||
{
|
{
|
||||||
b.Property<string>("Id")
|
b.Property<string>("Id")
|
||||||
.ValueGeneratedOnAdd();
|
.ValueGeneratedOnAdd();
|
||||||
@ -201,7 +201,7 @@ namespace nugethost.Migrations
|
|||||||
b.ToTable("AspNetUsers");
|
b.ToTable("AspNetUsers");
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("nuget_host.Data.Package", b =>
|
modelBuilder.Entity("isn.Data.Package", b =>
|
||||||
{
|
{
|
||||||
b.Property<string>("Id")
|
b.Property<string>("Id")
|
||||||
.ValueGeneratedOnAdd();
|
.ValueGeneratedOnAdd();
|
||||||
@ -219,7 +219,7 @@ namespace nugethost.Migrations
|
|||||||
b.ToTable("Packages");
|
b.ToTable("Packages");
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("nuget_host.Data.PackageVersion", b =>
|
modelBuilder.Entity("isn.Data.PackageVersion", b =>
|
||||||
{
|
{
|
||||||
b.Property<string>("PackageId");
|
b.Property<string>("PackageId");
|
||||||
|
|
||||||
@ -252,7 +252,7 @@ namespace nugethost.Migrations
|
|||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<string>", b =>
|
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<string>", b =>
|
||||||
{
|
{
|
||||||
b.HasOne("nuget_host.Data.ApplicationUser")
|
b.HasOne("isn.Data.ApplicationUser")
|
||||||
.WithMany()
|
.WithMany()
|
||||||
.HasForeignKey("UserId")
|
.HasForeignKey("UserId")
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
@ -260,7 +260,7 @@ namespace nugethost.Migrations
|
|||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b =>
|
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b =>
|
||||||
{
|
{
|
||||||
b.HasOne("nuget_host.Data.ApplicationUser")
|
b.HasOne("isn.Data.ApplicationUser")
|
||||||
.WithMany()
|
.WithMany()
|
||||||
.HasForeignKey("UserId")
|
.HasForeignKey("UserId")
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
@ -273,7 +273,7 @@ namespace nugethost.Migrations
|
|||||||
.HasForeignKey("RoleId")
|
.HasForeignKey("RoleId")
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
|
|
||||||
b.HasOne("nuget_host.Data.ApplicationUser")
|
b.HasOne("isn.Data.ApplicationUser")
|
||||||
.WithMany()
|
.WithMany()
|
||||||
.HasForeignKey("UserId")
|
.HasForeignKey("UserId")
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
@ -281,31 +281,31 @@ namespace nugethost.Migrations
|
|||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b =>
|
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b =>
|
||||||
{
|
{
|
||||||
b.HasOne("nuget_host.Data.ApplicationUser")
|
b.HasOne("isn.Data.ApplicationUser")
|
||||||
.WithMany()
|
.WithMany()
|
||||||
.HasForeignKey("UserId")
|
.HasForeignKey("UserId")
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("nuget_host.Data.ApiKeys.ApiKey", b =>
|
modelBuilder.Entity("isn.Data.ApiKeys.ApiKey", b =>
|
||||||
{
|
{
|
||||||
b.HasOne("nuget_host.Data.ApplicationUser", "User")
|
b.HasOne("isn.Data.ApplicationUser", "User")
|
||||||
.WithMany()
|
.WithMany()
|
||||||
.HasForeignKey("UserId")
|
.HasForeignKey("UserId")
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("nuget_host.Data.Package", b =>
|
modelBuilder.Entity("isn.Data.Package", b =>
|
||||||
{
|
{
|
||||||
b.HasOne("nuget_host.Data.ApplicationUser", "Owner")
|
b.HasOne("isn.Data.ApplicationUser", "Owner")
|
||||||
.WithMany()
|
.WithMany()
|
||||||
.HasForeignKey("OwnerId")
|
.HasForeignKey("OwnerId")
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("nuget_host.Data.PackageVersion", b =>
|
modelBuilder.Entity("isn.Data.PackageVersion", b =>
|
||||||
{
|
{
|
||||||
b.HasOne("nuget_host.Data.Package", "Package")
|
b.HasOne("isn.Data.Package", "Package")
|
||||||
.WithMany("Versions")
|
.WithMany("Versions")
|
||||||
.HasForeignKey("PackageId")
|
.HasForeignKey("PackageId")
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
.OnDelete(DeleteBehavior.Cascade);
|
@ -4,7 +4,7 @@ using Microsoft.EntityFrameworkCore;
|
|||||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
||||||
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||||
using nuget_host.Data;
|
using isn.Data;
|
||||||
|
|
||||||
namespace nugethost.Migrations
|
namespace nugethost.Migrations
|
||||||
{
|
{
|
||||||
@ -126,7 +126,7 @@ namespace nugethost.Migrations
|
|||||||
b.ToTable("AspNetUserTokens");
|
b.ToTable("AspNetUserTokens");
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("nuget_host.Data.ApiKeys.ApiKey", b =>
|
modelBuilder.Entity("isn.Data.ApiKeys.ApiKey", b =>
|
||||||
{
|
{
|
||||||
b.Property<string>("Id")
|
b.Property<string>("Id")
|
||||||
.ValueGeneratedOnAdd();
|
.ValueGeneratedOnAdd();
|
||||||
@ -147,7 +147,7 @@ namespace nugethost.Migrations
|
|||||||
b.ToTable("ApiKeys");
|
b.ToTable("ApiKeys");
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("nuget_host.Data.ApplicationUser", b =>
|
modelBuilder.Entity("isn.Data.ApplicationUser", b =>
|
||||||
{
|
{
|
||||||
b.Property<string>("Id")
|
b.Property<string>("Id")
|
||||||
.ValueGeneratedOnAdd();
|
.ValueGeneratedOnAdd();
|
||||||
@ -199,7 +199,7 @@ namespace nugethost.Migrations
|
|||||||
b.ToTable("AspNetUsers");
|
b.ToTable("AspNetUsers");
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("nuget_host.Data.Package", b =>
|
modelBuilder.Entity("isn.Data.Package", b =>
|
||||||
{
|
{
|
||||||
b.Property<string>("Id")
|
b.Property<string>("Id")
|
||||||
.ValueGeneratedOnAdd();
|
.ValueGeneratedOnAdd();
|
||||||
@ -217,7 +217,7 @@ namespace nugethost.Migrations
|
|||||||
b.ToTable("Packages");
|
b.ToTable("Packages");
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("nuget_host.Data.PackageVersion", b =>
|
modelBuilder.Entity("isn.Data.PackageVersion", b =>
|
||||||
{
|
{
|
||||||
b.Property<string>("PackageId");
|
b.Property<string>("PackageId");
|
||||||
|
|
||||||
@ -250,7 +250,7 @@ namespace nugethost.Migrations
|
|||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<string>", b =>
|
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<string>", b =>
|
||||||
{
|
{
|
||||||
b.HasOne("nuget_host.Data.ApplicationUser")
|
b.HasOne("isn.Data.ApplicationUser")
|
||||||
.WithMany()
|
.WithMany()
|
||||||
.HasForeignKey("UserId")
|
.HasForeignKey("UserId")
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
@ -258,7 +258,7 @@ namespace nugethost.Migrations
|
|||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b =>
|
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b =>
|
||||||
{
|
{
|
||||||
b.HasOne("nuget_host.Data.ApplicationUser")
|
b.HasOne("isn.Data.ApplicationUser")
|
||||||
.WithMany()
|
.WithMany()
|
||||||
.HasForeignKey("UserId")
|
.HasForeignKey("UserId")
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
@ -271,7 +271,7 @@ namespace nugethost.Migrations
|
|||||||
.HasForeignKey("RoleId")
|
.HasForeignKey("RoleId")
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
|
|
||||||
b.HasOne("nuget_host.Data.ApplicationUser")
|
b.HasOne("isn.Data.ApplicationUser")
|
||||||
.WithMany()
|
.WithMany()
|
||||||
.HasForeignKey("UserId")
|
.HasForeignKey("UserId")
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
@ -279,31 +279,31 @@ namespace nugethost.Migrations
|
|||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b =>
|
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b =>
|
||||||
{
|
{
|
||||||
b.HasOne("nuget_host.Data.ApplicationUser")
|
b.HasOne("isn.Data.ApplicationUser")
|
||||||
.WithMany()
|
.WithMany()
|
||||||
.HasForeignKey("UserId")
|
.HasForeignKey("UserId")
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("nuget_host.Data.ApiKeys.ApiKey", b =>
|
modelBuilder.Entity("isn.Data.ApiKeys.ApiKey", b =>
|
||||||
{
|
{
|
||||||
b.HasOne("nuget_host.Data.ApplicationUser", "User")
|
b.HasOne("isn.Data.ApplicationUser", "User")
|
||||||
.WithMany()
|
.WithMany()
|
||||||
.HasForeignKey("UserId")
|
.HasForeignKey("UserId")
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("nuget_host.Data.Package", b =>
|
modelBuilder.Entity("isn.Data.Package", b =>
|
||||||
{
|
{
|
||||||
b.HasOne("nuget_host.Data.ApplicationUser", "Owner")
|
b.HasOne("isn.Data.ApplicationUser", "Owner")
|
||||||
.WithMany()
|
.WithMany()
|
||||||
.HasForeignKey("OwnerId")
|
.HasForeignKey("OwnerId")
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("nuget_host.Data.PackageVersion", b =>
|
modelBuilder.Entity("isn.Data.PackageVersion", b =>
|
||||||
{
|
{
|
||||||
b.HasOne("nuget_host.Data.Package", "Package")
|
b.HasOne("isn.Data.Package", "Package")
|
||||||
.WithMany("Versions")
|
.WithMany("Versions")
|
||||||
.HasForeignKey("PackageId")
|
.HasForeignKey("PackageId")
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
.OnDelete(DeleteBehavior.Cascade);
|
@ -8,7 +8,7 @@ using Microsoft.AspNetCore.Hosting;
|
|||||||
using Microsoft.Extensions.Configuration;
|
using Microsoft.Extensions.Configuration;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
|
||||||
namespace nuget_host
|
namespace isn
|
||||||
{
|
{
|
||||||
public class Program
|
public class Program
|
||||||
{
|
{
|
@ -8,10 +8,10 @@ using MailKit.Net.Smtp;
|
|||||||
using MimeKit;
|
using MimeKit;
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using nuget_host.Interfaces;
|
using isn.Interfaces;
|
||||||
using nuget_host.Entities;
|
using isn.Entities;
|
||||||
|
|
||||||
namespace nuget_host.Services
|
namespace isn.Services
|
||||||
{
|
{
|
||||||
public class EmailSender : IEmailSender, IMailer
|
public class EmailSender : IEmailSender, IMailer
|
||||||
{
|
{
|
140
src/isnd/Services/PackageManager.cs
Normal file
140
src/isnd/Services/PackageManager.cs
Normal file
@ -0,0 +1,140 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using isn.Controllers;
|
||||||
|
using isn.Data;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using NuGet.Versioning;
|
||||||
|
using Unleash;
|
||||||
|
|
||||||
|
namespace isnd.Services
|
||||||
|
{
|
||||||
|
public class PackageManager
|
||||||
|
{
|
||||||
|
ApplicationDbContext dbContext;
|
||||||
|
public PackageManager(ApplicationDbContext dbContext)
|
||||||
|
{
|
||||||
|
this.dbContext = dbContext;
|
||||||
|
}
|
||||||
|
public IndexResult SearchByName(string query,
|
||||||
|
int skip, int take,bool prerelease = false,
|
||||||
|
string packageType = null)
|
||||||
|
{
|
||||||
|
var scope = dbContext.Packages
|
||||||
|
.Include(p => p.Versions)
|
||||||
|
.Where(
|
||||||
|
p => (CamelCaseMatch(p.Id, query) || SeparatedByMinusMatch(p.Id, query))
|
||||||
|
&& (prerelease || p.Versions.Any(v => !v.IsPrerelease))
|
||||||
|
&& (packageType == null || p.Versions.Any(v => v.Type == packageType))
|
||||||
|
);
|
||||||
|
return new IndexResult
|
||||||
|
{
|
||||||
|
totalHits = scope.Count(),
|
||||||
|
data = scope.OrderBy(p => p.Id)
|
||||||
|
.Skip(skip).Take(take).ToArray()
|
||||||
|
};
|
||||||
|
}
|
||||||
|
public AutoCompleteResult AutoComplete (string id,
|
||||||
|
int skip, int take, bool prerelease = false,
|
||||||
|
string packageType = null)
|
||||||
|
{
|
||||||
|
var scope = dbContext.PackageVersions.Where(
|
||||||
|
v => v.PackageId == id
|
||||||
|
&& (prerelease || !v.IsPrerelease)
|
||||||
|
&& (packageType == null || v.Type == packageType)
|
||||||
|
)
|
||||||
|
.OrderBy(v => v.FullString);
|
||||||
|
return new AutoCompleteResult
|
||||||
|
{
|
||||||
|
totalHits = scope.Count(),
|
||||||
|
data = scope.Select(v => v.FullString)
|
||||||
|
.Skip(skip).Take(take).ToArray()
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO stocker MetaData plutôt que FullString en base,
|
||||||
|
// et en profiter pour corriger ce listing
|
||||||
|
public string[] GetVersions(
|
||||||
|
string id,
|
||||||
|
NuGetVersion parsedVersion,
|
||||||
|
bool prerelease = false,
|
||||||
|
string packageType = null,
|
||||||
|
int skip = 0,
|
||||||
|
int take = 25)
|
||||||
|
{
|
||||||
|
return dbContext.PackageVersions.Where(
|
||||||
|
v => v.PackageId == id
|
||||||
|
&& (prerelease || !v.IsPrerelease)
|
||||||
|
&& (packageType == null || v.Type == packageType)
|
||||||
|
&& (parsedVersion.CompareTo(new SemanticVersion(v.Major, v.Minor, v.Patch)) < 0)
|
||||||
|
)
|
||||||
|
.OrderBy(v => v.FullString)
|
||||||
|
.Select(v => v.FullString)
|
||||||
|
.Skip(skip).Take(take).ToArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected static bool CamelCaseMatch(string id, string q)
|
||||||
|
{
|
||||||
|
// Assert.False (q==null);
|
||||||
|
string query = q;
|
||||||
|
if (query.Length == 0) return false;
|
||||||
|
|
||||||
|
while (id.Length > 0)
|
||||||
|
{
|
||||||
|
int i = 0;
|
||||||
|
while (id.Length > i && char.IsLower(id[i])) i++;
|
||||||
|
if (i == 0) break;
|
||||||
|
id = id.Substring(i);
|
||||||
|
if (id.StartsWith(q, System.StringComparison.OrdinalIgnoreCase)) return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
protected static bool SeparatedByMinusMatch(string id, string q)
|
||||||
|
{
|
||||||
|
foreach (var part in id.Split('-'))
|
||||||
|
{
|
||||||
|
if (part.StartsWith(q, System.StringComparison.OrdinalIgnoreCase)) return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
internal List<Resource> GetResources(IUnleash unleashClient)
|
||||||
|
{
|
||||||
|
var res = new List<Resource>();
|
||||||
|
if (unleashClient.IsEnabled("pkg-push"))
|
||||||
|
res.Add(
|
||||||
|
new Resource
|
||||||
|
{
|
||||||
|
id = "package",
|
||||||
|
type = "PackagePublish/2.0.0",
|
||||||
|
comment = "Package Publish service"
|
||||||
|
});
|
||||||
|
if (unleashClient.IsEnabled("pkg-get"))
|
||||||
|
res.Add(
|
||||||
|
new Resource
|
||||||
|
{
|
||||||
|
id = "package",
|
||||||
|
type = "PackageBaseAddress/3.0.0",
|
||||||
|
comment = "Package Base Address service"
|
||||||
|
});
|
||||||
|
if (unleashClient.IsEnabled("pkg-autocomplete"))
|
||||||
|
res.Add(
|
||||||
|
new Resource
|
||||||
|
{
|
||||||
|
id = "package/index.json",
|
||||||
|
type = "SearchAutocompleteService/3.5.0",
|
||||||
|
comment = "Auto complete service"
|
||||||
|
});
|
||||||
|
if (unleashClient.IsEnabled("pkg-search"))
|
||||||
|
res.Add(
|
||||||
|
new Resource
|
||||||
|
{
|
||||||
|
id = "package/index.json",
|
||||||
|
type = "SearchQueryService/3.5.0",
|
||||||
|
comment = "Search Query service"
|
||||||
|
});
|
||||||
|
return res;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
16
src/isnd/Services/SearchResult.cs
Normal file
16
src/isnd/Services/SearchResult.cs
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
using isn.Data;
|
||||||
|
|
||||||
|
namespace isnd.Services
|
||||||
|
{
|
||||||
|
public class IndexResult
|
||||||
|
{
|
||||||
|
public int totalHits { get; set; }
|
||||||
|
public Package[] data { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class AutoCompleteResult
|
||||||
|
{
|
||||||
|
public int totalHits { get; set; }
|
||||||
|
public string[] data { get; set; }
|
||||||
|
}
|
||||||
|
}
|
@ -6,21 +6,28 @@ using Microsoft.Extensions.DependencyInjection;
|
|||||||
using Microsoft.AspNetCore.Identity;
|
using Microsoft.AspNetCore.Identity;
|
||||||
using Microsoft.AspNetCore.Identity.UI.Services;
|
using Microsoft.AspNetCore.Identity.UI.Services;
|
||||||
using Microsoft.Extensions.Hosting;
|
using Microsoft.Extensions.Hosting;
|
||||||
using nuget_host.Data;
|
using isn.Data;
|
||||||
using nuget_host.Interfaces;
|
using isn.Interfaces;
|
||||||
using nuget_host.Services;
|
using isn.Services;
|
||||||
using nuget_host.Entities;
|
using isn.Entities;
|
||||||
using nuget_host.Authorization;
|
using isn.Authorization;
|
||||||
using nuget_host.Data.Roles;
|
using isn.Data.Roles;
|
||||||
using Microsoft.AspNetCore.Authorization;
|
using Microsoft.AspNetCore.Authorization;
|
||||||
|
using Unleash;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System;
|
||||||
|
using Unleash.ClientFactory;
|
||||||
|
using isnd.Entities;
|
||||||
|
using Microsoft.Extensions.Options;
|
||||||
|
|
||||||
namespace nuget_host
|
namespace isn
|
||||||
{
|
{
|
||||||
public class Startup
|
public class Startup
|
||||||
{
|
{
|
||||||
public Startup(IConfiguration config)
|
public Startup(IConfiguration config)
|
||||||
{
|
{
|
||||||
Configuration = config;
|
Configuration = config;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public IConfiguration Configuration { get; }
|
public IConfiguration Configuration { get; }
|
||||||
@ -64,11 +71,19 @@ namespace nuget_host
|
|||||||
services.Configure<NugetSettings>(nugetSettingsconf);
|
services.Configure<NugetSettings>(nugetSettingsconf);
|
||||||
var adminStartupListConf = Configuration.GetSection("AdminList");
|
var adminStartupListConf = Configuration.GetSection("AdminList");
|
||||||
services.Configure<AdminStartupList>(adminStartupListConf);
|
services.Configure<AdminStartupList>(adminStartupListConf);
|
||||||
|
var unleashConf = Configuration.GetSection("Unleash");
|
||||||
|
services.Configure<UnleashClientSettings>(unleashConf);
|
||||||
services.Configure<MigrationsEndPointOptions>(o => o.Path = "~/migrate");
|
services.Configure<MigrationsEndPointOptions>(o => o.Path = "~/migrate");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static IUnleash UnleashĈlient { get; private set; }
|
||||||
|
|
||||||
|
|
||||||
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
|
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
|
||||||
public void Configure(IApplicationBuilder app, Microsoft.AspNetCore.Hosting.IHostingEnvironment env,
|
public void Configure(IApplicationBuilder app,
|
||||||
|
Microsoft.AspNetCore.Hosting.IHostingEnvironment env,
|
||||||
|
IOptions<UnleashClientSettings> unleashClientSettings,
|
||||||
ApplicationDbContext dbContext)
|
ApplicationDbContext dbContext)
|
||||||
{
|
{
|
||||||
if (env.IsDevelopment())
|
if (env.IsDevelopment())
|
||||||
@ -83,13 +98,20 @@ namespace nuget_host
|
|||||||
dbContext.Database.Migrate();
|
dbContext.Database.Migrate();
|
||||||
}
|
}
|
||||||
|
|
||||||
app.UseStatusCodePages();
|
var unleashSettings = new UnleashSettings
|
||||||
|
{
|
||||||
|
UnleashApi = new Uri(unleashClientSettings.Value.ApiUrl),
|
||||||
|
AppName = "isnd",
|
||||||
|
Environment = env.EnvironmentName,
|
||||||
|
CustomHttpHeaders = new Dictionary<string, string>
|
||||||
|
{
|
||||||
|
{ "Authorization", unleashClientSettings.Value.ClientApiKey }
|
||||||
|
}
|
||||||
|
};
|
||||||
|
UnleashClientFactory unleashClientFactory = new UnleashClientFactory();
|
||||||
|
UnleashĈlient = unleashClientFactory.CreateClient(unleashSettings);
|
||||||
|
|
||||||
app.UseStaticFiles();
|
app.UseStatusCodePages().UseStaticFiles().UseAuthentication().UseMvc(routes =>
|
||||||
|
|
||||||
app.UseAuthentication();
|
|
||||||
|
|
||||||
app.UseMvc(routes =>
|
|
||||||
{
|
{
|
||||||
routes.MapRoute(
|
routes.MapRoute(
|
||||||
name: "default",
|
name: "default",
|
@ -1,7 +1,11 @@
|
|||||||
namespace nuget_host.ViewModels
|
using Unleash;
|
||||||
|
|
||||||
|
namespace isn.ViewModels
|
||||||
{
|
{
|
||||||
public class HomeIndexViewModel
|
public class HomeIndexViewModel
|
||||||
{
|
{
|
||||||
public int PkgCount { get; set; }
|
public int PkgCount { get; set; }
|
||||||
|
public IUnleash UnleashClient;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,7 +1,7 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using nuget_host.Data;
|
using isn.Data;
|
||||||
|
|
||||||
namespace nuget_host.ViewModels
|
namespace isn.ViewModels
|
||||||
{
|
{
|
||||||
public class PackageVersionIndexViewModel
|
public class PackageVersionIndexViewModel
|
||||||
{
|
{
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
@model nuget_host.Data.ApiKeys.CreateModel
|
@model isn.Data.ApiKeys.CreateModel
|
||||||
|
|
||||||
@{
|
@{
|
||||||
ViewData["Title"] = "Create";
|
ViewData["Title"] = "Create";
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
@model nuget_host.Data.ApiKeys.DeleteModel
|
@model isn.Data.ApiKeys.DeleteModel
|
||||||
|
|
||||||
@{
|
@{
|
||||||
ViewData["Title"] = "Delete";
|
ViewData["Title"] = "Delete";
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
@model nuget_host.Data.ApiKeys.DetailModel
|
@model isn.Data.ApiKeys.DetailModel
|
||||||
|
|
||||||
@{
|
@{
|
||||||
ViewData["Title"] = "Details";
|
ViewData["Title"] = "Details";
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
@model nuget_host.Data.ApiKeys.EditModel
|
@model isn.Data.ApiKeys.EditModel
|
||||||
|
|
||||||
@{
|
@{
|
||||||
ViewData["Title"] = "Edit";
|
ViewData["Title"] = "Edit";
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
@model nuget_host.Data.ApiKeys.IndexModel
|
@model isn.Data.ApiKeys.IndexModel
|
||||||
|
|
||||||
@{
|
@{
|
||||||
ViewData["Title"] = "Index";
|
ViewData["Title"] = "Index";
|
@ -1,13 +1,27 @@
|
|||||||
@model HomeIndexViewModel
|
@model HomeIndexViewModel
|
||||||
@{
|
@{
|
||||||
ViewData["Title"] = "Home Page";
|
ViewData["Title"] = "Home Page";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
<div class="text-center">
|
<div class="text-center">
|
||||||
<h1 class="display-4">Welcome</h1>
|
<h1 class="display-4">Welcome</h1>
|
||||||
<h1>
|
<h1>
|
||||||
<img src="~/icon.jpg">
|
<img src="~/icon.jpg">
|
||||||
Welcome to Apple
|
Welcome to isn
|
||||||
</h1>
|
</h1>
|
||||||
<strong>@Model.PkgCount identifiant(s) de paquet dans le SI</strong>
|
<strong>@Model.PkgCount identifiant(s) de paquet dans le SI</strong>
|
||||||
|
|
||||||
|
@{
|
||||||
|
if (Model.UnleashClient.IsEnabled("Demo"))
|
||||||
|
{
|
||||||
|
//do some magic
|
||||||
|
<p>Demo</p>
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//do old boring stuff
|
||||||
|
<p>No demo (disabled)</p>
|
||||||
|
}
|
||||||
|
}
|
||||||
</div>
|
</div>
|
@ -1,4 +1,4 @@
|
|||||||
@model nuget_host.Data.PackageVersion
|
@model isn.Data.PackageVersion
|
||||||
|
|
||||||
@{
|
@{
|
||||||
ViewData["Title"] = "Delete";
|
ViewData["Title"] = "Delete";
|
@ -1,4 +1,4 @@
|
|||||||
@model nuget_host.Data.PackageVersion
|
@model isn.Data.PackageVersion
|
||||||
|
|
||||||
@{
|
@{
|
||||||
ViewData["Title"] = "Details";
|
ViewData["Title"] = "Details";
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user