aboutsummaryrefslogtreecommitdiff
path: root/lib/VNLib.Plugins.Extensions.Data
diff options
context:
space:
mode:
Diffstat (limited to 'lib/VNLib.Plugins.Extensions.Data')
-rw-r--r--lib/VNLib.Plugins.Extensions.Data/src/Storage/LWStorageContext.cs9
-rw-r--r--lib/VNLib.Plugins.Extensions.Data/src/Storage/LWStorageDescriptor.cs9
-rw-r--r--lib/VNLib.Plugins.Extensions.Data/src/Storage/LWStorageManager.cs5
-rw-r--r--lib/VNLib.Plugins.Extensions.Data/src/VNLib.Plugins.Extensions.Data.csproj17
4 files changed, 22 insertions, 18 deletions
diff --git a/lib/VNLib.Plugins.Extensions.Data/src/Storage/LWStorageContext.cs b/lib/VNLib.Plugins.Extensions.Data/src/Storage/LWStorageContext.cs
index dcde80a..fabd54e 100644
--- a/lib/VNLib.Plugins.Extensions.Data/src/Storage/LWStorageContext.cs
+++ b/lib/VNLib.Plugins.Extensions.Data/src/Storage/LWStorageContext.cs
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2022 Vaughn Nugent
+* Copyright (c) 2023 Vaughn Nugent
*
* Library: VNLib
* Package: VNLib.Plugins.Extensions.Data
@@ -22,6 +22,8 @@
* along with this program. If not, see https://www.gnu.org/licenses/.
*/
+using System;
+
using Microsoft.EntityFrameworkCore;
namespace VNLib.Plugins.Extensions.Data.Storage
@@ -40,9 +42,8 @@ namespace VNLib.Plugins.Extensions.Data.Storage
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
- //Set table name
- modelBuilder.Entity<LWStorageEntry>()
- .ToTable(TableName);
+ if(TableName != null)
+ throw new NotImplementedException("Table/relational package requires development not yet implemented");
}
}
} \ No newline at end of file
diff --git a/lib/VNLib.Plugins.Extensions.Data/src/Storage/LWStorageDescriptor.cs b/lib/VNLib.Plugins.Extensions.Data/src/Storage/LWStorageDescriptor.cs
index 939d3e3..cc9bd46 100644
--- a/lib/VNLib.Plugins.Extensions.Data/src/Storage/LWStorageDescriptor.cs
+++ b/lib/VNLib.Plugins.Extensions.Data/src/Storage/LWStorageDescriptor.cs
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2022 Vaughn Nugent
+* Copyright (c) 2023 Vaughn Nugent
*
* Library: VNLib
* Package: VNLib.Plugins.Extensions.Data
@@ -33,7 +33,6 @@ using System.Text.Json.Serialization;
using VNLib.Utils;
using VNLib.Utils.Async;
-using VNLib.Utils.Extensions;
using VNLib.Utils.Memory;
namespace VNLib.Plugins.Extensions.Data.Storage
@@ -108,7 +107,7 @@ namespace VNLib.Plugins.Extensions.Data.Storage
//Decode and deserialize the data
return BrotliDecoder.TryDecompress(Entry.Data, decodeBuffer, out int written)
- ? JsonSerializer.Deserialize<Dictionary<string, string>>(Entry.Data, SerializerOptions) ?? new(StringComparer.OrdinalIgnoreCase)
+ ? JsonSerializer.Deserialize<Dictionary<string, string>>(decodeBuffer.Span[..written], SerializerOptions) ?? new(StringComparer.OrdinalIgnoreCase)
: throw new InvalidDataException("Failed to decompress data");
}
}
@@ -122,7 +121,7 @@ namespace VNLib.Plugins.Extensions.Data.Storage
{
Check();
//De-serialize and return object
- return StringStorage.Value.TryGetValue(key, out string? val) ? val.AsJsonObject<T>(SerializerOptions) : default;
+ return StringStorage.Value.TryGetValue(key, out string? val) ? JsonSerializer.Deserialize<T>(val, SerializerOptions) : default;
}
/// <inheritdoc/>
@@ -138,7 +137,7 @@ namespace VNLib.Plugins.Extensions.Data.Storage
else
{
//Serialize the object to a string
- string value = obj.ToJsonString(SerializerOptions)!;
+ string value = JsonSerializer.Serialize(obj, SerializerOptions);
//Attempt to store string in storage
SetStringValue(key, value);
}
diff --git a/lib/VNLib.Plugins.Extensions.Data/src/Storage/LWStorageManager.cs b/lib/VNLib.Plugins.Extensions.Data/src/Storage/LWStorageManager.cs
index 8a34ec4..eabe618 100644
--- a/lib/VNLib.Plugins.Extensions.Data/src/Storage/LWStorageManager.cs
+++ b/lib/VNLib.Plugins.Extensions.Data/src/Storage/LWStorageManager.cs
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2022 Vaughn Nugent
+* Copyright (c) 2023 Vaughn Nugent
*
* Library: VNLib
* Package: VNLib.Plugins.Extensions.Data
@@ -272,8 +272,9 @@ namespace VNLib.Plugins.Extensions.Data.Storage
{
throw new InvalidDataException("Failed to compress the descriptor data");
}
+
//Set the data
- entry.Data = encBuffer.Span.ToArray();
+ entry.Data = encBuffer.Span[..compressed].ToArray();
}
//Update modified time
entry.LastModified = DateTime.UtcNow;
diff --git a/lib/VNLib.Plugins.Extensions.Data/src/VNLib.Plugins.Extensions.Data.csproj b/lib/VNLib.Plugins.Extensions.Data/src/VNLib.Plugins.Extensions.Data.csproj
index 67310b6..0616048 100644
--- a/lib/VNLib.Plugins.Extensions.Data/src/VNLib.Plugins.Extensions.Data.csproj
+++ b/lib/VNLib.Plugins.Extensions.Data/src/VNLib.Plugins.Extensions.Data.csproj
@@ -4,20 +4,24 @@
<TargetFramework>net6.0</TargetFramework>
<RootNamespace>VNLib.Plugins.Extensions.Data</RootNamespace>
<AssemblyName>VNLib.Plugins.Extensions.Data</AssemblyName>
- <Version>1.0.1.1</Version>
<Nullable>enable</Nullable>
- <SignAssembly>True</SignAssembly>
<GenerateDocumentationFile>True</GenerateDocumentationFile>
- <AssemblyOriginatorKeyFile>\\vaughnnugent.com\Internal\Folder Redirection\vman\Documents\Programming\Software\StrongNameingKey.snk</AssemblyOriginatorKeyFile>
<AnalysisLevel>latest-all</AnalysisLevel>
</PropertyGroup>
<PropertyGroup>
<Authors>Vaughn Nugent</Authors>
- <Description>Data extensions for VNLib Plugins</Description>
+ <Company>Vaughn Nugent</Company>
+ <Product>VNLib.Plugins.Extensions.Data</Product>
+ <PackageId>VNLib.Plugins.Extensions.Data</PackageId>
+ <Description>
+ An Essentials framework extension library that provides data structures for abstractions between data and
+ databases, using the EntityFrameworkCore library and design patterns.
+ </Description>
<Copyright>Copyright © 2023 Vaughn Nugent</Copyright>
- <PackageProjectUrl>https://www.vaughnnugent.com/resources</PackageProjectUrl>
+ <PackageProjectUrl>https://www.vaughnnugent.com/resources/software/modules/VNLib.Plugins.Extensions</PackageProjectUrl>
+ <RepositoryUrl>https://github.com/VnUgE/VNLib.Plugins.Extensions/tree/master/lib/VNLib.Plugins.Extensions.Data</RepositoryUrl>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
@@ -37,8 +41,7 @@
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
- <PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.13" />
- <PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="6.0.13" />
+ <PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.14" />
</ItemGroup>
<ItemGroup>