Compare commits
2 Commits
9b589af816
...
b370c69670
Author | SHA1 | Date | |
---|---|---|---|
b370c69670 | |||
d70b081752 |
@ -271,8 +271,8 @@ public class AccountController(
|
|||||||
|
|
||||||
var today = SystemClock.Instance.GetCurrentInstant().InUtc().Date;
|
var today = SystemClock.Instance.GetCurrentInstant().InUtc().Date;
|
||||||
var localTime = new TimeOnly(0, 0);
|
var localTime = new TimeOnly(0, 0);
|
||||||
var startOfDay = today.ToDateOnly().ToDateTime(localTime).ToInstant();
|
var startOfDay = today.ToDateOnly().ToDateTime(localTime).ToUniversalTime().ToInstant();
|
||||||
var endOfDay = today.PlusDays(1).ToDateOnly().ToDateTime(localTime).ToInstant();
|
var endOfDay = today.PlusDays(1).ToDateOnly().ToDateTime(localTime).ToUniversalTime().ToInstant();
|
||||||
|
|
||||||
var result = await db.AccountCheckInResults
|
var result = await db.AccountCheckInResults
|
||||||
.Where(x => x.AccountId == userId)
|
.Where(x => x.AccountId == userId)
|
||||||
@ -294,12 +294,13 @@ public class AccountController(
|
|||||||
return BadRequest("Check-in is not available for today.");
|
return BadRequest("Check-in is not available for today.");
|
||||||
|
|
||||||
var needsCaptcha = events.CheckInDailyDoAskCaptcha(currentUser);
|
var needsCaptcha = events.CheckInDailyDoAskCaptcha(currentUser);
|
||||||
if (needsCaptcha && string.IsNullOrWhiteSpace(captchaToken))
|
return needsCaptcha switch
|
||||||
return StatusCode(423, "Captcha is required for this check-in.");
|
{
|
||||||
if (!await auth.ValidateCaptcha(captchaToken!))
|
true when string.IsNullOrWhiteSpace(captchaToken) => StatusCode(423,
|
||||||
return BadRequest("Invalid captcha token.");
|
"Captcha is required for this check-in."),
|
||||||
|
true when !await auth.ValidateCaptcha(captchaToken!) => BadRequest("Invalid captcha token."),
|
||||||
return await events.CheckInDaily(currentUser);
|
_ => await events.CheckInDaily(currentUser)
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet("search")]
|
[HttpGet("search")]
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
using System.Globalization;
|
||||||
using DysonNetwork.Sphere.Activity;
|
using DysonNetwork.Sphere.Activity;
|
||||||
using DysonNetwork.Sphere.Connection;
|
using DysonNetwork.Sphere.Connection;
|
||||||
using DysonNetwork.Sphere.Resources;
|
using DysonNetwork.Sphere.Resources;
|
||||||
@ -11,10 +12,10 @@ namespace DysonNetwork.Sphere.Account;
|
|||||||
|
|
||||||
public class AccountEventService(
|
public class AccountEventService(
|
||||||
AppDatabase db,
|
AppDatabase db,
|
||||||
AccountService acc,
|
|
||||||
ActivityService act,
|
ActivityService act,
|
||||||
WebSocketService ws,
|
WebSocketService ws,
|
||||||
IMemoryCache cache
|
IMemoryCache cache,
|
||||||
|
IStringLocalizer<Localization.AccountEventResource> localizer
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
private static readonly Random Random = new();
|
private static readonly Random Random = new();
|
||||||
@ -120,10 +121,10 @@ public class AccountEventService(
|
|||||||
|
|
||||||
public async Task<CheckInResult> CheckInDaily(Account user)
|
public async Task<CheckInResult> CheckInDaily(Account user)
|
||||||
{
|
{
|
||||||
if (await CheckInDailyIsAvailable(user)) throw new InvalidOperationException("Check-in is not available");
|
var cultureInfo = new CultureInfo(user.Language, false);
|
||||||
|
CultureInfo.CurrentCulture = cultureInfo;
|
||||||
var localizer = acc.GetEventLocalizer(user.Language);
|
CultureInfo.CurrentUICulture = cultureInfo;
|
||||||
|
|
||||||
// Generate 2 positive tips
|
// Generate 2 positive tips
|
||||||
var positiveIndices = Enumerable.Range(1, FortuneTipCount)
|
var positiveIndices = Enumerable.Range(1, FortuneTipCount)
|
||||||
.OrderBy(_ => Random.Next())
|
.OrderBy(_ => Random.Next())
|
||||||
@ -137,6 +138,7 @@ public class AccountEventService(
|
|||||||
|
|
||||||
// Generate 2 negative tips
|
// Generate 2 negative tips
|
||||||
var negativeIndices = Enumerable.Range(1, FortuneTipCount)
|
var negativeIndices = Enumerable.Range(1, FortuneTipCount)
|
||||||
|
.Except(positiveIndices)
|
||||||
.OrderBy(_ => Random.Next())
|
.OrderBy(_ => Random.Next())
|
||||||
.Take(2)
|
.Take(2)
|
||||||
.ToList();
|
.ToList();
|
||||||
|
@ -1,18 +1,24 @@
|
|||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
|
using System.Reflection;
|
||||||
using DysonNetwork.Sphere.Localization;
|
using DysonNetwork.Sphere.Localization;
|
||||||
using DysonNetwork.Sphere.Permission;
|
using DysonNetwork.Sphere.Permission;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Microsoft.Extensions.Caching.Memory;
|
using Microsoft.Extensions.Caching.Memory;
|
||||||
using Microsoft.Extensions.Localization;
|
using Microsoft.Extensions.Localization;
|
||||||
|
using Microsoft.Extensions.Logging.Abstractions;
|
||||||
|
|
||||||
namespace DysonNetwork.Sphere.Account;
|
namespace DysonNetwork.Sphere.Account;
|
||||||
|
|
||||||
public class AccountService(AppDatabase db, PermissionService pm, IMemoryCache cache, IStringLocalizerFactory localizerFactory)
|
public class AccountService(
|
||||||
|
AppDatabase db,
|
||||||
|
IMemoryCache cache,
|
||||||
|
IStringLocalizerFactory factory
|
||||||
|
)
|
||||||
{
|
{
|
||||||
public async Task PurgeAccountCache(Account account)
|
public async Task PurgeAccountCache(Account account)
|
||||||
{
|
{
|
||||||
cache.Remove($"dyn_user_friends_{account.Id}");
|
cache.Remove($"dyn_user_friends_{account.Id}");
|
||||||
|
|
||||||
var sessions = await db.AuthSessions.Where(e => e.Account.Id == account.Id).Select(e => e.Id)
|
var sessions = await db.AuthSessions.Where(e => e.Account.Id == account.Id).Select(e => e.Id)
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
foreach (var session in sessions)
|
foreach (var session in sessions)
|
||||||
@ -34,9 +40,4 @@ public class AccountService(AppDatabase db, PermissionService pm, IMemoryCache c
|
|||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public IStringLocalizer GetEventLocalizer(string language)
|
|
||||||
{
|
|
||||||
return localizerFactory.Create(language, nameof(AccountEventResource));
|
|
||||||
}
|
|
||||||
}
|
}
|
@ -16,8 +16,8 @@ public class Activity : ModelBase
|
|||||||
[MaxLength(1024)] public string Type { get; set; } = null!;
|
[MaxLength(1024)] public string Type { get; set; } = null!;
|
||||||
[MaxLength(4096)] public string ResourceIdentifier { get; set; } = null!;
|
[MaxLength(4096)] public string ResourceIdentifier { get; set; } = null!;
|
||||||
public ActivityVisibility Visibility { get; set; } = ActivityVisibility.Public;
|
public ActivityVisibility Visibility { get; set; } = ActivityVisibility.Public;
|
||||||
[Column(TypeName = "jsonb")] public Dictionary<string, object> Meta = new();
|
[Column(TypeName = "jsonb")] public Dictionary<string, object> Meta { get; set; } = new();
|
||||||
[Column(TypeName = "jsonb")] public ICollection<long> UsersVisible = new List<long>();
|
[Column(TypeName = "jsonb")] public ICollection<long> UsersVisible { get; set; } = new List<long>();
|
||||||
|
|
||||||
public long AccountId { get; set; }
|
public long AccountId { get; set; }
|
||||||
public Account.Account Account { get; set; } = null!;
|
public Account.Account Account { get; set; } = null!;
|
||||||
|
@ -6,29 +6,33 @@ namespace DysonNetwork.Sphere.Activity;
|
|||||||
|
|
||||||
[ApiController]
|
[ApiController]
|
||||||
[Route("/activities")]
|
[Route("/activities")]
|
||||||
public class ActivityController(AppDatabase db, ActivityService act, RelationshipService rels) : ControllerBase
|
public class ActivityController(
|
||||||
|
AppDatabase db,
|
||||||
|
ActivityReaderService reader,
|
||||||
|
RelationshipService rels) : ControllerBase
|
||||||
{
|
{
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
public async Task<ActionResult<List<Activity>>> ListActivities([FromQuery] int offset, [FromQuery] int take = 20)
|
public async Task<ActionResult<List<Activity>>> ListActivities([FromQuery] int offset, [FromQuery] int take = 20)
|
||||||
{
|
{
|
||||||
HttpContext.Items.TryGetValue("CurrentUser", out var currentUserValue);
|
HttpContext.Items.TryGetValue("CurrentUser", out var currentUserValue);
|
||||||
var currentUser = currentUserValue as Account.Account;
|
var currentUser = currentUserValue as Account.Account;
|
||||||
var userFriends = currentUser is null ? null : await rels.ListAccountFriends(currentUser);
|
var userFriends = currentUser is null ? [] : await rels.ListAccountFriends(currentUser);
|
||||||
|
|
||||||
var totalCount = await db.Activities
|
var totalCount = await db.Activities
|
||||||
.FilterWithVisibility(currentUser, userFriends)
|
.FilterWithVisibility(currentUser, userFriends)
|
||||||
.CountAsync();
|
.CountAsync();
|
||||||
var activities = await db.Activities
|
var activities = await db.Activities
|
||||||
.Include(e => e.Account)
|
.Include(e => e.Account)
|
||||||
|
.Include(e => e.Account.Profile)
|
||||||
.FilterWithVisibility(currentUser, userFriends)
|
.FilterWithVisibility(currentUser, userFriends)
|
||||||
.OrderByDescending(e => e.CreatedAt)
|
.OrderByDescending(e => e.CreatedAt)
|
||||||
.Skip(offset)
|
.Skip(offset)
|
||||||
.Take(take)
|
.Take(take)
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
activities = await act.LoadActivityData(activities, currentUser, userFriends);
|
activities = await reader.LoadActivityData(activities, currentUser, userFriends);
|
||||||
|
|
||||||
Response.Headers["X-Total"] = totalCount.ToString();
|
Response.Headers["X-Total"] = totalCount.ToString();
|
||||||
|
|
||||||
return Ok(activities);
|
return Ok(activities);
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -4,7 +4,7 @@ using NodaTime;
|
|||||||
|
|
||||||
namespace DysonNetwork.Sphere.Activity;
|
namespace DysonNetwork.Sphere.Activity;
|
||||||
|
|
||||||
public class ActivityService(AppDatabase db)
|
public class ActivityReaderService(AppDatabase db, PostService ps)
|
||||||
{
|
{
|
||||||
public async Task<List<Activity>> LoadActivityData(List<Activity> input, Account.Account? currentUser,
|
public async Task<List<Activity>> LoadActivityData(List<Activity> input, Account.Account? currentUser,
|
||||||
List<long> userFriends)
|
List<long> userFriends)
|
||||||
@ -29,6 +29,11 @@ public class ActivityService(AppDatabase db)
|
|||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
posts = PostService.TruncatePostContent(posts);
|
posts = PostService.TruncatePostContent(posts);
|
||||||
|
|
||||||
|
var reactionMaps = await ps.GetPostReactionMapBatch(postsId);
|
||||||
|
foreach (var post in posts)
|
||||||
|
post.ReactionsCount =
|
||||||
|
reactionMaps.TryGetValue(post.Id, out var count) ? count : new Dictionary<string, int>();
|
||||||
|
|
||||||
var postsDict = posts.ToDictionary(p => p.Id);
|
var postsDict = posts.ToDictionary(p => p.Id);
|
||||||
|
|
||||||
foreach (var item in input)
|
foreach (var item in input)
|
||||||
@ -55,7 +60,7 @@ public class ActivityService(AppDatabase db)
|
|||||||
.Include(e => e.Account.Profile)
|
.Include(e => e.Account.Profile)
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
var statusesDict = statuses.ToDictionary(p => p.Id);
|
var statusesDict = statuses.ToDictionary(p => p.Id);
|
||||||
|
|
||||||
foreach (var item in input)
|
foreach (var item in input)
|
||||||
{
|
{
|
||||||
var resourceIdentifier = item.ResourceIdentifier;
|
var resourceIdentifier = item.ResourceIdentifier;
|
||||||
@ -67,7 +72,7 @@ public class ActivityService(AppDatabase db)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var checkInId = input
|
var checkInId = input
|
||||||
.Where(e => e.ResourceIdentifier.StartsWith("account.check-in/"))
|
.Where(e => e.ResourceIdentifier.StartsWith("account.check-in/"))
|
||||||
.Select(e => Guid.Parse(e.ResourceIdentifier.Split("/").Last()))
|
.Select(e => Guid.Parse(e.ResourceIdentifier.Split("/").Last()))
|
||||||
@ -80,7 +85,7 @@ public class ActivityService(AppDatabase db)
|
|||||||
.Include(e => e.Account.Profile)
|
.Include(e => e.Account.Profile)
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
var checkInsDict = checkIns.ToDictionary(p => p.Id);
|
var checkInsDict = checkIns.ToDictionary(p => p.Id);
|
||||||
|
|
||||||
foreach (var item in input)
|
foreach (var item in input)
|
||||||
{
|
{
|
||||||
var resourceIdentifier = item.ResourceIdentifier;
|
var resourceIdentifier = item.ResourceIdentifier;
|
||||||
@ -92,10 +97,13 @@ public class ActivityService(AppDatabase db)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return input;
|
return input;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ActivityService(AppDatabase db)
|
||||||
|
{
|
||||||
public async Task<Activity> CreateActivity(
|
public async Task<Activity> CreateActivity(
|
||||||
Account.Account user,
|
Account.Account user,
|
||||||
string type,
|
string type,
|
||||||
@ -159,6 +167,7 @@ public static class ActivityQueryExtensions
|
|||||||
.Where(e => e.Visibility != ActivityVisibility.Friends ||
|
.Where(e => e.Visibility != ActivityVisibility.Friends ||
|
||||||
userFriends.Contains(e.AccountId) ||
|
userFriends.Contains(e.AccountId) ||
|
||||||
e.AccountId == currentUser.Id)
|
e.AccountId == currentUser.Id)
|
||||||
.Where(e => e.Visibility != ActivityVisibility.Selected || e.UsersVisible.Contains(currentUser.Id));
|
.Where(e => e.Visibility != ActivityVisibility.Selected ||
|
||||||
|
EF.Functions.JsonExists(e.UsersVisible, currentUser.Id.ToString()));
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -69,7 +69,7 @@ public class AppDatabase(
|
|||||||
|
|
||||||
optionsBuilder.UseNpgsql(
|
optionsBuilder.UseNpgsql(
|
||||||
dataSource,
|
dataSource,
|
||||||
opt => opt.UseNodaTime()
|
opt => opt.UseNodaTime().UseQuerySplittingBehavior(QuerySplittingBehavior.SplitQuery)
|
||||||
).UseSnakeCaseNamingConvention();
|
).UseSnakeCaseNamingConvention();
|
||||||
|
|
||||||
optionsBuilder.UseAsyncSeeding(async (context, _, cancellationToken) =>
|
optionsBuilder.UseAsyncSeeding(async (context, _, cancellationToken) =>
|
||||||
|
@ -64,40 +64,30 @@
|
|||||||
<Generator>ResXFileCodeGenerator</Generator>
|
<Generator>ResXFileCodeGenerator</Generator>
|
||||||
<LastGenOutput>SharedResource.Designer.cs</LastGenOutput>
|
<LastGenOutput>SharedResource.Designer.cs</LastGenOutput>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Update="Resources\SharedResource.zh-CN.resx">
|
|
||||||
<Generator>ResXFileCodeGenerator</Generator>
|
|
||||||
<LastGenOutput>SharedResource-zh-CN.Designer.cs</LastGenOutput>
|
|
||||||
</EmbeddedResource>
|
|
||||||
<EmbeddedResource Update="Resources\AccountEventResource.resx">
|
<EmbeddedResource Update="Resources\AccountEventResource.resx">
|
||||||
<Generator>ResXFileCodeGenerator</Generator>
|
<Generator>ResXFileCodeGenerator</Generator>
|
||||||
<LastGenOutput>AccountEventResource.Designer.cs</LastGenOutput>
|
<LastGenOutput>AccountEventResource.Designer.cs</LastGenOutput>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Update="Resources\AccountEventResource.zh-CN.resx">
|
<EmbeddedResource Update="Resources\Localization\AccountEventResource.resx">
|
||||||
<Generator>ResXFileCodeGenerator</Generator>
|
<Generator>ResXFileCodeGenerator</Generator>
|
||||||
<LastGenOutput>AccountEventResource.zh-CN.Designer.cs</LastGenOutput>
|
<LastGenOutput>AccountEventResource.Designer.cs</LastGenOutput>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Update="Resources\Localization\SharedResource.resx">
|
||||||
|
<Generator>ResXFileCodeGenerator</Generator>
|
||||||
|
<LastGenOutput>SharedResource.Designer.cs</LastGenOutput>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Update="Resources\SharedResource.Designer.cs">
|
<Compile Update="Resources\Localization\AccountEventResource.Designer.cs">
|
||||||
<DesignTime>True</DesignTime>
|
|
||||||
<AutoGen>True</AutoGen>
|
|
||||||
<DependentUpon>SharedResource.resx</DependentUpon>
|
|
||||||
</Compile>
|
|
||||||
<Compile Update="Resources\SharedResource.zh-CN.Designer.cs">
|
|
||||||
<DesignTime>True</DesignTime>
|
|
||||||
<AutoGen>True</AutoGen>
|
|
||||||
<DependentUpon>SharedResource.zh-CN.resx</DependentUpon>
|
|
||||||
</Compile>
|
|
||||||
<Compile Update="Resources\AccountEventResource.Designer.cs">
|
|
||||||
<DesignTime>True</DesignTime>
|
<DesignTime>True</DesignTime>
|
||||||
<AutoGen>True</AutoGen>
|
<AutoGen>True</AutoGen>
|
||||||
<DependentUpon>AccountEventResource.resx</DependentUpon>
|
<DependentUpon>AccountEventResource.resx</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Update="Resources\AccountEventResource.zh-CN.Designer.cs">
|
<Compile Update="Resources\Localization\SharedResource.Designer.cs">
|
||||||
<DesignTime>True</DesignTime>
|
<DesignTime>True</DesignTime>
|
||||||
<AutoGen>True</AutoGen>
|
<AutoGen>True</AutoGen>
|
||||||
<DependentUpon>AccountEventResource.zh-CN.resx</DependentUpon>
|
<DependentUpon>SharedResource.resx</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
2564
DysonNetwork.Sphere/Migrations/20250508140200_DontKnowHowToNameThing.Designer.cs
generated
Normal file
2564
DysonNetwork.Sphere/Migrations/20250508140200_DontKnowHowToNameThing.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,39 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using Microsoft.EntityFrameworkCore.Migrations;
|
||||||
|
|
||||||
|
#nullable disable
|
||||||
|
|
||||||
|
namespace DysonNetwork.Sphere.Migrations
|
||||||
|
{
|
||||||
|
/// <inheritdoc />
|
||||||
|
public partial class DontKnowHowToNameThing : Migration
|
||||||
|
{
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void Up(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.AddColumn<Dictionary<string, object>>(
|
||||||
|
name: "meta",
|
||||||
|
table: "activities",
|
||||||
|
type: "jsonb",
|
||||||
|
nullable: false);
|
||||||
|
|
||||||
|
migrationBuilder.AddColumn<ICollection<long>>(
|
||||||
|
name: "users_visible",
|
||||||
|
table: "activities",
|
||||||
|
type: "jsonb",
|
||||||
|
nullable: false);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void Down(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.DropColumn(
|
||||||
|
name: "meta",
|
||||||
|
table: "activities");
|
||||||
|
|
||||||
|
migrationBuilder.DropColumn(
|
||||||
|
name: "users_visible",
|
||||||
|
table: "activities");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -568,6 +568,11 @@ namespace DysonNetwork.Sphere.Migrations
|
|||||||
.HasColumnType("timestamp with time zone")
|
.HasColumnType("timestamp with time zone")
|
||||||
.HasColumnName("deleted_at");
|
.HasColumnName("deleted_at");
|
||||||
|
|
||||||
|
b.Property<Dictionary<string, object>>("Meta")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("jsonb")
|
||||||
|
.HasColumnName("meta");
|
||||||
|
|
||||||
b.Property<string>("ResourceIdentifier")
|
b.Property<string>("ResourceIdentifier")
|
||||||
.IsRequired()
|
.IsRequired()
|
||||||
.HasMaxLength(4096)
|
.HasMaxLength(4096)
|
||||||
@ -584,6 +589,11 @@ namespace DysonNetwork.Sphere.Migrations
|
|||||||
.HasColumnType("timestamp with time zone")
|
.HasColumnType("timestamp with time zone")
|
||||||
.HasColumnName("updated_at");
|
.HasColumnName("updated_at");
|
||||||
|
|
||||||
|
b.Property<ICollection<long>>("UsersVisible")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("jsonb")
|
||||||
|
.HasColumnName("users_visible");
|
||||||
|
|
||||||
b.Property<int>("Visibility")
|
b.Property<int>("Visibility")
|
||||||
.HasColumnType("integer")
|
.HasColumnType("integer")
|
||||||
.HasColumnName("visibility");
|
.HasColumnName("visibility");
|
||||||
|
@ -60,11 +60,10 @@ builder.Services.AddRazorPages();
|
|||||||
builder.Services.Configure<RequestLocalizationOptions>(options => {
|
builder.Services.Configure<RequestLocalizationOptions>(options => {
|
||||||
var supportedCultures = new[]
|
var supportedCultures = new[]
|
||||||
{
|
{
|
||||||
new CultureInfo("en-US"),
|
new CultureInfo("en-us"),
|
||||||
new CultureInfo("zh-CN"),
|
new CultureInfo("zh-hans"),
|
||||||
};
|
};
|
||||||
|
|
||||||
options.DefaultRequestCulture = new RequestCulture("en-US");
|
|
||||||
options.SupportedCultures = supportedCultures;
|
options.SupportedCultures = supportedCultures;
|
||||||
options.SupportedUICultures = supportedCultures;
|
options.SupportedUICultures = supportedCultures;
|
||||||
});
|
});
|
||||||
@ -158,6 +157,7 @@ builder.Services.AddScoped<AuthService>();
|
|||||||
builder.Services.AddScoped<FileService>();
|
builder.Services.AddScoped<FileService>();
|
||||||
builder.Services.AddScoped<PublisherService>();
|
builder.Services.AddScoped<PublisherService>();
|
||||||
builder.Services.AddScoped<ActivityService>();
|
builder.Services.AddScoped<ActivityService>();
|
||||||
|
builder.Services.AddScoped<ActivityReaderService>();
|
||||||
builder.Services.AddScoped<PostService>();
|
builder.Services.AddScoped<PostService>();
|
||||||
builder.Services.AddScoped<RealmService>();
|
builder.Services.AddScoped<RealmService>();
|
||||||
builder.Services.AddScoped<ChatRoomService>();
|
builder.Services.AddScoped<ChatRoomService>();
|
||||||
|
@ -1,48 +0,0 @@
|
|||||||
//------------------------------------------------------------------------------
|
|
||||||
// <auto-generated>
|
|
||||||
// This code was generated by a tool.
|
|
||||||
//
|
|
||||||
// Changes to this file may cause incorrect behavior and will be lost if
|
|
||||||
// the code is regenerated.
|
|
||||||
// </auto-generated>
|
|
||||||
//------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
namespace DysonNetwork.Sphere.Resources {
|
|
||||||
using System;
|
|
||||||
|
|
||||||
|
|
||||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
|
|
||||||
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
|
||||||
[System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
|
||||||
public class AccountEventResource {
|
|
||||||
|
|
||||||
private static System.Resources.ResourceManager resourceMan;
|
|
||||||
|
|
||||||
private static System.Globalization.CultureInfo resourceCulture;
|
|
||||||
|
|
||||||
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
|
||||||
internal AccountEventResource() {
|
|
||||||
}
|
|
||||||
|
|
||||||
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
|
|
||||||
internal static System.Resources.ResourceManager ResourceManager {
|
|
||||||
get {
|
|
||||||
if (object.Equals(null, resourceMan)) {
|
|
||||||
System.Resources.ResourceManager temp = new System.Resources.ResourceManager("DysonNetwork.Sphere.Resources.AccountEventResource", typeof(AccountEventResource).Assembly);
|
|
||||||
resourceMan = temp;
|
|
||||||
}
|
|
||||||
return resourceMan;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
|
|
||||||
internal static System.Globalization.CultureInfo Culture {
|
|
||||||
get {
|
|
||||||
return resourceCulture;
|
|
||||||
}
|
|
||||||
set {
|
|
||||||
resourceCulture = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,21 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
|
|
||||||
<root>
|
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
|
||||||
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:schema>
|
|
||||||
<resheader name="resmimetype">
|
|
||||||
<value>text/microsoft-resx</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="version">
|
|
||||||
<value>1.3</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="reader">
|
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="writer">
|
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
</root>
|
|
@ -14,21 +14,21 @@ namespace DysonNetwork.Sphere.Resources {
|
|||||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
|
||||||
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
[System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
[System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||||
internal class AccountEventResource_zh_CN {
|
internal class AccountEventResource {
|
||||||
|
|
||||||
private static System.Resources.ResourceManager resourceMan;
|
private static System.Resources.ResourceManager resourceMan;
|
||||||
|
|
||||||
private static System.Globalization.CultureInfo resourceCulture;
|
private static System.Globalization.CultureInfo resourceCulture;
|
||||||
|
|
||||||
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||||
internal AccountEventResource_zh_CN() {
|
internal AccountEventResource() {
|
||||||
}
|
}
|
||||||
|
|
||||||
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
|
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||||
internal static System.Resources.ResourceManager ResourceManager {
|
internal static System.Resources.ResourceManager ResourceManager {
|
||||||
get {
|
get {
|
||||||
if (object.Equals(null, resourceMan)) {
|
if (object.Equals(null, resourceMan)) {
|
||||||
System.Resources.ResourceManager temp = new System.Resources.ResourceManager("DysonNetwork.Sphere.Resources.AccountEventResource_zh_CN", typeof(AccountEventResource_zh_CN).Assembly);
|
System.Resources.ResourceManager temp = new System.Resources.ResourceManager("DysonNetwork.Sphere.Resources.AccountEventResource", typeof(AccountEventResource).Assembly);
|
||||||
resourceMan = temp;
|
resourceMan = temp;
|
||||||
}
|
}
|
||||||
return resourceMan;
|
return resourceMan;
|
||||||
@ -57,9 +57,15 @@ namespace DysonNetwork.Sphere.Resources {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static string FortuneTipNegativeTitle_1_ {
|
internal static string FortuneTipNegativeTitle_1 {
|
||||||
get {
|
get {
|
||||||
return ResourceManager.GetString("FortuneTipNegativeTitle_1 ", resourceCulture);
|
return ResourceManager.GetString("FortuneTipNegativeTitle_1", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
internal static string FortuneTipNegativeContent_1 {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("FortuneTipNegativeContent_1", resourceCulture);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -129,6 +135,12 @@ namespace DysonNetwork.Sphere.Resources {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal static string FortuneTipNegativeContent_4 {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("FortuneTipNegativeContent_4", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
internal static string FortuneTipPositiveTitle_5 {
|
internal static string FortuneTipPositiveTitle_5 {
|
||||||
get {
|
get {
|
||||||
return ResourceManager.GetString("FortuneTipPositiveTitle_5", resourceCulture);
|
return ResourceManager.GetString("FortuneTipPositiveTitle_5", resourceCulture);
|
||||||
@ -200,5 +212,11 @@ namespace DysonNetwork.Sphere.Resources {
|
|||||||
return ResourceManager.GetString("FortuneTipNegativeContent_7", resourceCulture);
|
return ResourceManager.GetString("FortuneTipNegativeContent_7", resourceCulture);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal static string FortuneTipNegativeTitle_1_ {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("FortuneTipNegativeTitle_1 ", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -0,0 +1,113 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
|
<root>
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||||
|
xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>1.3</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral,
|
||||||
|
PublicKeyToken=b77a5c561934e089
|
||||||
|
</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral,
|
||||||
|
PublicKeyToken=b77a5c561934e089
|
||||||
|
</value>
|
||||||
|
</resheader>
|
||||||
|
<data name="FortuneTipPositiveTitle_1" xml:space="preserve">
|
||||||
|
<value>Gacha</value>
|
||||||
|
</data>
|
||||||
|
<data name="FortuneTipPositiveContent_1" xml:space="preserve">
|
||||||
|
<value>Golden every pull</value>
|
||||||
|
</data>
|
||||||
|
<data name="FortuneTipNegativeTitle_1" xml:space="preserve">
|
||||||
|
<value>Gacha</value>
|
||||||
|
</data>
|
||||||
|
<data name="FortuneTipNegativeContent_1" xml:space="preserve">
|
||||||
|
<value>Won't pull the card you like</value>
|
||||||
|
</data>
|
||||||
|
<data name="FortuneTipPositiveTitle_2" xml:space="preserve">
|
||||||
|
<value>Gaming</value>
|
||||||
|
</data>
|
||||||
|
<data name="FortuneTipPositiveContent_2" xml:space="preserve">
|
||||||
|
<value>Rank up like a hot knife through butter</value>
|
||||||
|
</data>
|
||||||
|
<data name="FortuneTipNegativeTitle_2" xml:space="preserve">
|
||||||
|
<value>Gaming</value>
|
||||||
|
</data>
|
||||||
|
<data name="FortuneTipNegativeContent_2" xml:space="preserve">
|
||||||
|
<value>Dropping ranks like a landslide</value>
|
||||||
|
</data>
|
||||||
|
<data name="FortuneTipPositiveTitle_3" xml:space="preserve">
|
||||||
|
<value>Lottery</value>
|
||||||
|
</data>
|
||||||
|
<data name="FortuneTipPositiveContent_3" xml:space="preserve">
|
||||||
|
<value>Blessed with luck</value>
|
||||||
|
</data>
|
||||||
|
<data name="FortuneTipNegativeTitle_3" xml:space="preserve">
|
||||||
|
<value>Lottery</value>
|
||||||
|
</data>
|
||||||
|
<data name="FortuneTipNegativeContent_3" xml:space="preserve">
|
||||||
|
<value>Ten pulls, all silence</value>
|
||||||
|
</data>
|
||||||
|
<data name="FortuneTipPositiveTitle_4" xml:space="preserve">
|
||||||
|
<value>Speech</value>
|
||||||
|
</data>
|
||||||
|
<data name="FortuneTipPositiveContent_4" xml:space="preserve">
|
||||||
|
<value>Words flow like gems</value>
|
||||||
|
</data>
|
||||||
|
<data name="FortuneTipNegativeTitle_4" xml:space="preserve">
|
||||||
|
<value>Speech</value>
|
||||||
|
</data>
|
||||||
|
<data name="FortuneTipNegativeContent_4" xml:space="preserve">
|
||||||
|
<value>Be careful what you're saying</value>
|
||||||
|
</data>
|
||||||
|
<data name="FortuneTipPositiveTitle_5" xml:space="preserve">
|
||||||
|
<value>Drawing</value>
|
||||||
|
</data>
|
||||||
|
<data name="FortuneTipPositiveContent_5" xml:space="preserve">
|
||||||
|
<value>Inspiration gushes like a spring</value>
|
||||||
|
</data>
|
||||||
|
<data name="FortuneTipNegativeTitle_5" xml:space="preserve">
|
||||||
|
<value>Drawing</value>
|
||||||
|
</data>
|
||||||
|
<data name="FortuneTipNegativeContent_5" xml:space="preserve">
|
||||||
|
<value>Every stroke weighs a thousand pounds</value>
|
||||||
|
</data>
|
||||||
|
<data name="FortuneTipPositiveTitle_6" xml:space="preserve">
|
||||||
|
<value>Coding</value>
|
||||||
|
</data>
|
||||||
|
<data name="FortuneTipPositiveContent_6" xml:space="preserve">
|
||||||
|
<value>0 error(s), 0 warning(s)</value>
|
||||||
|
</data>
|
||||||
|
<data name="FortuneTipNegativeTitle_6" xml:space="preserve">
|
||||||
|
<value>Coding</value>
|
||||||
|
</data>
|
||||||
|
<data name="FortuneTipNegativeContent_6" xml:space="preserve">
|
||||||
|
<value>114 error(s), 514 warning(s)</value>
|
||||||
|
</data>
|
||||||
|
<data name="FortuneTipPositiveTitle_7" xml:space="preserve">
|
||||||
|
<value>Shopping</value>
|
||||||
|
</data>
|
||||||
|
<data name="FortuneTipPositiveContent_7" xml:space="preserve">
|
||||||
|
<value>Exchange rate at its lowest</value>
|
||||||
|
</data>
|
||||||
|
<data name="FortuneTipNegativeTitle_7" xml:space="preserve">
|
||||||
|
<value>Unboxing</value>
|
||||||
|
</data>
|
||||||
|
<data name="FortuneTipNegativeContent_7" xml:space="preserve">
|
||||||
|
<value>225% tariff</value>
|
||||||
|
</data>
|
||||||
|
<data name="FortuneTipNegativeTitle_1 " xml:space="preserve">
|
||||||
|
<value>Gacha</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
@ -1,11 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
|
|
||||||
<root>
|
<root>
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
|
||||||
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:schema>
|
|
||||||
<resheader name="resmimetype">
|
<resheader name="resmimetype">
|
||||||
<value>text/microsoft-resx</value>
|
<value>text/microsoft-resx</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
@ -24,8 +17,8 @@
|
|||||||
<data name="FortuneTipPositiveContent_1" xml:space="preserve">
|
<data name="FortuneTipPositiveContent_1" xml:space="preserve">
|
||||||
<value>次次出金</value>
|
<value>次次出金</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FortuneTipNegativeTitle_1 " xml:space="preserve">
|
<data name="FortuneTipNegativeContent_1" xml:space="preserve">
|
||||||
<value>抽卡</value>
|
<value>吃大保底</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FortuneTipPositiveTitle_2" xml:space="preserve">
|
<data name="FortuneTipPositiveTitle_2" xml:space="preserve">
|
||||||
<value>游戏</value>
|
<value>游戏</value>
|
||||||
@ -60,6 +53,9 @@
|
|||||||
<data name="FortuneTipNegativeTitle_4" xml:space="preserve">
|
<data name="FortuneTipNegativeTitle_4" xml:space="preserve">
|
||||||
<value>演讲</value>
|
<value>演讲</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="FortuneTipNegativeContent_4" xml:space="preserve">
|
||||||
|
<value>谨言慎行</value>
|
||||||
|
</data>
|
||||||
<data name="FortuneTipPositiveTitle_5" xml:space="preserve">
|
<data name="FortuneTipPositiveTitle_5" xml:space="preserve">
|
||||||
<value>绘图</value>
|
<value>绘图</value>
|
||||||
</data>
|
</data>
|
||||||
@ -96,4 +92,7 @@
|
|||||||
<data name="FortuneTipNegativeContent_7" xml:space="preserve">
|
<data name="FortuneTipNegativeContent_7" xml:space="preserve">
|
||||||
<value>225% 关税</value>
|
<value>225% 关税</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="FortuneTipNegativeTitle_1" xml:space="preserve">
|
||||||
|
<value>抽卡</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
@ -1,11 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
|
|
||||||
<root>
|
<root>
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
|
||||||
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:schema>
|
|
||||||
<resheader name="resmimetype">
|
<resheader name="resmimetype">
|
||||||
<value>text/microsoft-resx</value>
|
<value>text/microsoft-resx</value>
|
||||||
</resheader>
|
</resheader>
|
@ -1,48 +0,0 @@
|
|||||||
//------------------------------------------------------------------------------
|
|
||||||
// <auto-generated>
|
|
||||||
// This code was generated by a tool.
|
|
||||||
//
|
|
||||||
// Changes to this file may cause incorrect behavior and will be lost if
|
|
||||||
// the code is regenerated.
|
|
||||||
// </auto-generated>
|
|
||||||
//------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
namespace DysonNetwork.Sphere.Resources {
|
|
||||||
using System;
|
|
||||||
|
|
||||||
|
|
||||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
|
|
||||||
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
|
||||||
[System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
|
||||||
internal class SharedResource_zh_CN {
|
|
||||||
|
|
||||||
private static System.Resources.ResourceManager resourceMan;
|
|
||||||
|
|
||||||
private static System.Globalization.CultureInfo resourceCulture;
|
|
||||||
|
|
||||||
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
|
||||||
internal SharedResource_zh_CN() {
|
|
||||||
}
|
|
||||||
|
|
||||||
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
|
|
||||||
internal static System.Resources.ResourceManager ResourceManager {
|
|
||||||
get {
|
|
||||||
if (object.Equals(null, resourceMan)) {
|
|
||||||
System.Resources.ResourceManager temp = new System.Resources.ResourceManager("DysonNetwork.Sphere.Resources.SharedResource_zh_CN", typeof(SharedResource_zh_CN).Assembly);
|
|
||||||
resourceMan = temp;
|
|
||||||
}
|
|
||||||
return resourceMan;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
|
|
||||||
internal static System.Globalization.CultureInfo Culture {
|
|
||||||
get {
|
|
||||||
return resourceCulture;
|
|
||||||
}
|
|
||||||
set {
|
|
||||||
resourceCulture = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -50,6 +50,7 @@
|
|||||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003APutObjectArgs_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003FLibrary_003FApplication_0020Support_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FSourcesCache_003F6efe388c7585d5dd5587416a55298550b030c2a107edf45f988791297c3ffa_003FPutObjectArgs_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003APutObjectArgs_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003FLibrary_003FApplication_0020Support_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FSourcesCache_003F6efe388c7585d5dd5587416a55298550b030c2a107edf45f988791297c3ffa_003FPutObjectArgs_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AQueryable_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003FLibrary_003FApplication_0020Support_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F42d8f09d6a294d00a6f49efc989927492fe00_003F4e_003F26d1ee34_003FQueryable_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AQueryable_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003FLibrary_003FApplication_0020Support_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F42d8f09d6a294d00a6f49efc989927492fe00_003F4e_003F26d1ee34_003FQueryable_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AResizeOptions_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003FLibrary_003FApplication_0020Support_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fef3339e864a448e2b1ec6fa7bbf4c6661fee00_003F48_003F0209e410_003FResizeOptions_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AResizeOptions_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003FLibrary_003FApplication_0020Support_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fef3339e864a448e2b1ec6fa7bbf4c6661fee00_003F48_003F0209e410_003FResizeOptions_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AResourceManagerStringLocalizerFactory_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003FLibrary_003FApplication_0020Support_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fb62f365d06c44ad695ff75960cdf97a2a800_003Fe4_003Ff6ba93b7_003FResourceManagerStringLocalizerFactory_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ASafeHandle_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003FLibrary_003FApplication_0020Support_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fb6f0571a6bc744b0b551fd4578292582e54c00_003F66_003Fde27c365_003FSafeHandle_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ASafeHandle_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003FLibrary_003FApplication_0020Support_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fb6f0571a6bc744b0b551fd4578292582e54c00_003F66_003Fde27c365_003FSafeHandle_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ASecuritySchemeType_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003FLibrary_003FApplication_0020Support_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FSourcesCache_003F29898ce74e3763a786ac1bd9a6db2152e1af75769440b1e53b9cbdf1dda1bd99_003FSecuritySchemeType_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ASecuritySchemeType_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003FLibrary_003FApplication_0020Support_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FSourcesCache_003F29898ce74e3763a786ac1bd9a6db2152e1af75769440b1e53b9cbdf1dda1bd99_003FSecuritySchemeType_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AServiceCollectionContainerBuilderExtensions_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003FLibrary_003FApplication_0020Support_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fc0e30e11d8f5456cb7a11b21ebee6c5a35c00_003F60_003F78b485f5_003FServiceCollectionContainerBuilderExtensions_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AServiceCollectionContainerBuilderExtensions_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003FLibrary_003FApplication_0020Support_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fc0e30e11d8f5456cb7a11b21ebee6c5a35c00_003F60_003F78b485f5_003FServiceCollectionContainerBuilderExtensions_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
@ -62,9 +63,22 @@
|
|||||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATusDiskStore_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003FLibrary_003FApplication_0020Support_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F8bb08a178b5b43c5bac20a5a54159a5b2a800_003F1c_003F21999acd_003FTusDiskStore_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATusDiskStore_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003FLibrary_003FApplication_0020Support_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F8bb08a178b5b43c5bac20a5a54159a5b2a800_003F1c_003F21999acd_003FTusDiskStore_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AUri_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003FLibrary_003FApplication_0020Support_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F5d2c480da9be415dab9be535bb6d08713cc00_003Fd0_003Fffc36a51_003FUri_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AUri_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003FLibrary_003FApplication_0020Support_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F5d2c480da9be415dab9be535bb6d08713cc00_003Fd0_003Fffc36a51_003FUri_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AValidationContext_00601_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003FLibrary_003FApplication_0020Support_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F8bb08a178b5b43c5bac20a5a54159a5b2a800_003F6b_003F741ceebe_003FValidationContext_00601_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AValidationContext_00601_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003FLibrary_003FApplication_0020Support_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F8bb08a178b5b43c5bac20a5a54159a5b2a800_003F6b_003F741ceebe_003FValidationContext_00601_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=DysonNetwork_002ESphere_002FResources_002FAccountEventResource/@EntryIndexedValue">True</s:Boolean>
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=DysonNetwork_002ESphere_002FLocalization_002FResources_002FAccountEventResource/@EntryIndexedValue">False</s:Boolean>
|
||||||
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=DysonNetwork_002ESphere_002FResources_002FAccountEventResource_002Ezh_002DCN/@EntryIndexedValue">True</s:Boolean>
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=DysonNetwork_002ESphere_002FLocalization_002FResources_002FAccountEventResource/@EntryIndexRemoved">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=DysonNetwork_002ESphere_002FLocalization_002FResources_002FSharedResource/@EntryIndexedValue">False</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=DysonNetwork_002ESphere_002FLocalization_002FResources_002FSharedResource/@EntryIndexRemoved">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=DysonNetwork_002ESphere_002FResources_002FAccountEventResource/@EntryIndexedValue">False</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=DysonNetwork_002ESphere_002FResources_002FAccountEventResource/@EntryIndexRemoved">True</s:Boolean>
|
||||||
|
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=DysonNetwork_002ESphere_002FResources_002FAccountEventResource_002Ezh_002DCN/@EntryIndexedValue">False</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=DysonNetwork_002ESphere_002FResources_002FAccountEventResource_002Ezh_002DCN/@EntryIndexRemoved">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=DysonNetwork_002ESphere_002FResources_002FLocalization_002FAccountEventResource/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=DysonNetwork_002ESphere_002FResources_002FLocalization_002FSharedResource/@EntryIndexedValue">True</s:Boolean>
|
||||||
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=DysonNetwork_002ESphere_002FResources_002FSharedResource/@EntryIndexedValue">False</s:Boolean>
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=DysonNetwork_002ESphere_002FResources_002FSharedResource/@EntryIndexedValue">False</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=DysonNetwork_002ESphere_002FResources_002FSharedResource/@EntryIndexRemoved">True</s:Boolean>
|
||||||
|
|
||||||
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=DysonNetwork_002ESphere_002FResources_002FSharedResource_002Ezh_002DCN/@EntryIndexedValue">False</s:Boolean>
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=DysonNetwork_002ESphere_002FResources_002FSharedResource_002Ezh_002DCN/@EntryIndexedValue">False</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=DysonNetwork_002ESphere_002FResources_002FSharedResource_002Ezh_002DCN/@EntryIndexRemoved">True</s:Boolean>
|
||||||
|
<s:String x:Key="/Default/ResxEditorPersonal/DisabledLanguages/@EntryValue"></s:String>
|
||||||
<s:Boolean x:Key="/Default/ResxEditorPersonal/Initialized/@EntryValue">True</s:Boolean>
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/Initialized/@EntryValue">True</s:Boolean>
|
||||||
<s:Boolean x:Key="/Default/ResxEditorPersonal/ShowOnlyErrors/@EntryValue">False</s:Boolean></wpf:ResourceDictionary>
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/ShowOnlyErrors/@EntryValue">False</s:Boolean></wpf:ResourceDictionary>
|
Loading…
x
Reference in New Issue
Block a user