Fixed claimed waifu decay that was introduced in a recent patch.

Cleaned up a little bit in marmalade loading. Clean marmalade unloading will be broken for a while probably
This commit is contained in:
Toastie 2024-09-24 20:48:49 +12:00
parent 4659da224b
commit 4afa604a1b
Signed by: toastie_t0ast
GPG key ID: 27F3B6855AFD40A4
2 changed files with 27 additions and 15 deletions

View file

@ -577,7 +577,7 @@ public class WaifuService : IEService, IReadyExecutor
{
await using var uow = _db.GetDbContext();
await uow.GetTable<WaifuInfo>()
.Where(x => x.Price > minPrice && x.ClaimerId == null)
.Where(x => x.Price > minPrice && x.ClaimerId != null)
.UpdateAsync(old => new()
{
Price = (long)(old.Price * claimedMulti)

View file

@ -250,6 +250,7 @@ public sealed class MarmaladeLoaderService : IMarmaladeLoaderService, IReadyExec
}
catch (Exception ex) when (ex is FileNotFoundException or BadImageFormatException)
{
Log.Error(ex, "An error occurred loading a marmalade");
return MarmaladeLoadResult.NotFound;
}
catch (Exception ex)
@ -334,23 +335,34 @@ public sealed class MarmaladeLoaderService : IMarmaladeLoaderService, IReadyExec
var a = ctx.LoadFromAssemblyPath(Path.GetFullPath(path));
// ctx.LoadDependencies(a);
iocModule = null;
// load services
iocModule = new MarmaladeNinjectIocModule(_cont, a, safeName);
iocModule.Load();
var sis = LoadCanariesFromAssembly(safeName, a);
typeReaders = LoadTypeReadersFromAssembly(a, strings);
if (sis.Count == 0)
try
{
iocModule.Unload();
return false;
iocModule = new MarmaladeNinjectIocModule(_cont, a, safeName);
iocModule.Load();
var sis = LoadCanariesFromAssembly(safeName, a);
typeReaders = LoadTypeReadersFromAssembly(a, strings);
if (sis.Count == 0)
{
iocModule.Unload();
ctx.Unload();
return false;
}
ctxWr = new(ctx);
canaryData = sis;
return true;
}
catch
{
iocModule?.Unload();
ctx.Unload();
throw;
}
ctxWr = new(ctx);
canaryData = sis;
return true;
}
private static readonly Type _paramParserType = typeof(ParamParser<>);