fixe l'execution (apparemment)

This commit is contained in:
2018-03-26 21:31:20 +02:00
parent 8fbe56c67e
commit b1e7022a3f
6 changed files with 32 additions and 20 deletions

View File

@ -2,10 +2,8 @@ namespace Yavsc.Server.Helpers
{
public static class DbHelpers
{
static string _connectionString = null;
public static string ConnectionString {
get { return _connectionString = null; }
set { _connectionString = value; }
}
// FIXME BUG [fr] DependencyInjection Pourquoi ce champ ne pourrait pas devenir une propriété ?
// : casse à l'execution d'un controlleur, se plaignant d'une valeur nule
public static string ConnectionString = null;
}
}

View File

@ -65,10 +65,8 @@ namespace Yavsc.Models
et.FindProperty("DateCreated").IsReadOnlyAfterSave = true;
}
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseNpgsql(DbHelpers.ConnectionString);
}

View File

@ -89,7 +89,7 @@ public static FileRecievedInfo ReceiveProSignature(this ClaimsPrincipal user, st
public static void DeleteUserFile(this ApplicationUser user, string fileName)
{
var root = Path.Combine(Startup.UserFilesDirName, user.UserName);
var root = Path.Combine(AbstractFileSystemHelpers.UserFilesDirName, user.UserName);
var fi = new FileInfo(Path.Combine(root, fileName));
if (!fi.Exists) return ;
fi.Delete();

View File

@ -6,13 +6,13 @@ using Microsoft.AspNet.FileProviders;
using Microsoft.AspNet.Hosting;
using Microsoft.AspNet.Http;
using Microsoft.AspNet.StaticFiles;
using Yavsc.Abstract.FileSystem;
using Yavsc.ViewModels.Auth;
namespace Yavsc
{
public partial class Startup
{
public static string UserFilesDirName { get; private set; }
public static FileServerOptions UserFilesOptions { get; private set; }
public static FileServerOptions AvatarsOptions { get; set; }
@ -20,13 +20,13 @@ namespace Yavsc
SiteSettings siteSettings, IHostingEnvironment env, IAuthorizationService authorizationService)
{
var userFilesDirInfo = new DirectoryInfo( siteSettings.UserFiles.Blog );
UserFilesDirName = userFilesDirInfo.FullName;
AbstractFileSystemHelpers.UserFilesDirName = userFilesDirInfo.FullName;
if (!userFilesDirInfo.Exists) userFilesDirInfo.Create();
UserFilesOptions = new FileServerOptions()
{
FileProvider = new PhysicalFileProvider(UserFilesDirName),
FileProvider = new PhysicalFileProvider(AbstractFileSystemHelpers.UserFilesDirName),
RequestPath = new PathString(Constants.UserFilesPath),
EnableDirectoryBrowsing = env.IsDevelopment(),

View File

@ -36,11 +36,11 @@ namespace Yavsc
using ViewModels.Auth.Handlers;
using Yavsc.Abstract.FileSystem;
using Yavsc.Helpers;
using Yavsc.Server.Helpers;
using static System.Environment;
public partial class Startup
{
public static string ConnectionString { get; private set; }
public static string AvatarsDirName { private set; get; }
public static string Authority { get; private set; }
public static string Temp { get; set; }
@ -73,7 +73,12 @@ namespace Yavsc
builder.AddEnvironmentVariables();
Configuration = builder.Build();
ConnectionString = Configuration["Data:DefaultConnection:ConnectionString"];
var auth = Configuration["Site:Authority"];
var cxstr = Configuration["Data:DefaultConnection:ConnectionString"];
DbHelpers.ConnectionString = cxstr;
Console.WriteLine($"# {auth} ConnectionString: {cxstr}");
}
public static GoogleAuthSettings GoogleSettings { get; set; }
@ -82,6 +87,9 @@ namespace Yavsc
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
// Database connection
services.AddOptions();
var siteSettings = Configuration.GetSection("Site");
services.Configure<SiteSettings>(siteSettings);
@ -146,10 +154,11 @@ namespace Yavsc
// DataProtection
ConfigureProtectionServices(services);
// Add framework services.
services.AddEntityFramework()
.AddNpgsql()
.AddDbContext<ApplicationDbContext>(options => options.UseNpgsql(ConnectionString))
.AddDbContext<ApplicationDbContext>()
;
ConfigureOAuthServices(services);
@ -255,7 +264,6 @@ namespace Yavsc
IOptions<SiteSettings> siteSettings,
IOptions<RequestLocalizationOptions> localizationOptions,
IOptions<OAuth2AppSettings> oauth2SettingsContainer,
RoleManager<IdentityRole> roleManager,
IAuthorizationService authorizationService,
IOptions<PayPalSettings> payPalSettings,
IOptions<GoogleAuthSettings> googleSettings,
@ -266,15 +274,22 @@ namespace Yavsc
GlobalLocalizer = localizer;
SiteSetup = siteSettings.Value;
Authority = siteSettings.Value.Authority;
AbstractFileSystemHelpers.UserFilesDirName = new DirectoryInfo(siteSettings.Value.UserFiles.Blog).FullName;
AbstractFileSystemHelpers.UserBillsDirName = new DirectoryInfo(siteSettings.Value.UserFiles.Bills).FullName;
Startup.Temp = siteSettings.Value.TempDir;
var blogsDir = siteSettings.Value.UserFiles.Blog;
if (blogsDir==null) throw new Exception ("blogsDir==null");
var billsDir = siteSettings.Value.UserFiles.Bills;
if (billsDir==null) throw new Exception ("billsDir==null");
AbstractFileSystemHelpers.UserFilesDirName = new DirectoryInfo(blogsDir).FullName;
AbstractFileSystemHelpers.UserBillsDirName = new DirectoryInfo(billsDir).FullName;
Temp = siteSettings.Value.TempDir;
PayPalSettings = payPalSettings.Value;
// TODO implement an installation & upgrade procedure
// Create required directories
foreach (string dir in new string[] { UserFilesDirName, AbstractFileSystemHelpers.UserBillsDirName, SiteSetup.TempDir })
foreach (string dir in new string[] { AbstractFileSystemHelpers.UserFilesDirName, AbstractFileSystemHelpers.UserBillsDirName, SiteSetup.TempDir })
{
if (dir==null) throw new Exception (nameof(dir));
DirectoryInfo di = new DirectoryInfo(dir);
if (!di.Exists) di.Create();
}

View File

@ -3,6 +3,7 @@ using Microsoft.AspNet.Mvc;
namespace Yavsc.ViewComponents
{
using System.Threading.Tasks;
using Yavsc.Abstract.FileSystem;
using Yavsc.ViewModels.UserFiles;
public class DirectoryViewComponent : ViewComponent
@ -12,7 +13,7 @@ namespace Yavsc.ViewComponents
IViewComponentResult result = null;
await Task.Run(() =>
{
result = View(new UserDirectoryInfo(Startup.UserFilesDirName, User.Identity.Name, dirname));
result = View(new UserDirectoryInfo(AbstractFileSystemHelpers.UserFilesDirName, User.Identity.Name, dirname));
});
return result;
}