Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
2968fd1
Add support for reserved keywords. Allow simple queries. Reorganize code
gusbro Sep 15, 2021
6eb10d9
- Support constants in filters
gusbro Oct 1, 2021
5dc7dd8
Fix inserts/updates/deletes
gusbro Oct 7, 2021
4c5ece0
fix update names
gusbro Oct 7, 2021
6ac4658
- fix assignments
gusbro Oct 12, 2021
f101f55
- empty constants are supported
gusbro Oct 14, 2021
dae3fa7
add empty value for GX IsEmpty() method
gusbro Oct 14, 2021
51bea1d
Add support for retrieving results over secondary indexes
gusbro Nov 22, 2021
fe18eeb
update nuget packages & fix lint errors
gusbro Nov 22, 2021
6c99e02
Merge branch 'master' into Issue69246DynamoDB
gusbro Nov 22, 2021
467ff6e
Merge remote-tracking branch 'origin/master' into Issue69246DynamoDB
gusbro Dec 1, 2021
3baa5f0
Merge branch 'Issue69246DynamoDB' of https://github.com/genexuslabs/D…
gusbro Dec 1, 2021
ef26e19
Add support to .NET 5/6
gusbro Dec 2, 2021
86cd518
Reorganize folder structure and projects to build DynService.Core and…
gusbro Dec 3, 2021
cb9cc63
Merge branch 'master' into Issue69246DynamoDB
ggallotti Feb 17, 2022
2e1871f
Merge branch 'master' into Issue69246DynamoDB
gusbro Feb 17, 2022
81ce1af
Remove unneeded net5.0 target framework
claudiamurialdo Feb 17, 2022
7543353
make this library and the Java one more homogeneous
gusbro Mar 11, 2022
86328dd
Merge branch 'master' into Issue69246DynamoDB
claudiamurialdo Mar 11, 2022
87908d9
Merge remote-tracking branch 'origin/master' into Issue69246DynamoDB
gusbro Mar 18, 2022
0366e2e
Fix lint warnings
gusbro Mar 18, 2022
50b81a0
Merge remote-tracking branch 'origin/master' into Issue69246DynamoDB
gusbro Mar 23, 2022
f258c6d
Add special case for queries that filter with an empty string key
gusbro Mar 23, 2022
5329b5e
Fix DynamoDB Local connections not using -sharedDb. Region was not ta…
gusbro Mar 29, 2022
66a873a
Merge remote-tracking branch 'origin/master' into Issue69246DynamoDB
gusbro Apr 11, 2022
cebbe2d
Merge remote-tracking branch 'origin/master' into Issue69246DynamoDB
gusbro Apr 19, 2022
1fb7950
Add support for binary streams
gusbro Apr 22, 2022
6c90df4
Fix NullReferenceException when trying to get a binary stream from a …
gusbro Apr 22, 2022
73b6d47
Merge remote-tracking branch 'origin/master' into Issue69246DynamoDB
gusbro Apr 26, 2022
ebc51ff
Add support for when duplicate/when none semantics
gusbro Apr 26, 2022
f8d2ed2
Merge remote-tracking branch 'origin/master' into Issue69246DynamoDB
gusbro May 9, 2022
2aa649e
Improve Query/Scan inference. Fix lint errors
gusbro May 9, 2022
4adb074
Merge remote-tracking branch 'origin/master' into Issue69246DynamoDB
gusbro Jun 22, 2022
4ccd2f5
Fix datetime fields. Fix update queries
gusbro Jun 30, 2022
19a9afd
Merge remote-tracking branch 'origin/master' into Issue69246DynamoDB
gusbro Jul 1, 2022
67db504
Fix parsing numeric when field was null
gusbro Jul 1, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 7 additions & 11 deletions dotnet/DotNetStandardClasses.sln
Original file line number Diff line number Diff line change
Expand Up @@ -69,9 +69,9 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GXGoogleCloud", "src\dotnet
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "dynservice", "dynservice", "{A14C2C2C-ACE3-4712-A527-E4E5F02729FA}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DynService.Core", "src\dotnetframework\DynService.Core\DynService.Core.csproj", "{B0DEB9ED-9E0A-42E3-BBE1-9F70DD78DC93}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DynService.Core", "src\dotnetcommon\DynService.Core\DynService.Core.csproj", "{B0DEB9ED-9E0A-42E3-BBE1-9F70DD78DC93}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DynService.DynamoDB", "src\dotnetframework\DynService.Dynamo\DynService.DynamoDB.csproj", "{4DC1C813-E7C1-442E-B7D6-C9B932A55759}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DynService.DynamoDB", "src\dotnetcommon\DynService.Dynamo\DynService.DynamoDB.csproj", "{4DC1C813-E7C1-442E-B7D6-C9B932A55759}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DynService.Fabric", "src\dotnetframework\DynServiceFabric\DynService.Fabric.csproj", "{42D048EC-29C5-4553-B301-A6A5A76A7FB8}"
EndProject
Expand Down Expand Up @@ -119,8 +119,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DotNetUnitTest", "test\DotN
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "dynservice", "dynservice", "{79C9ECC6-2935-4C43-BF32-94698547F584}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DynService.Core", "src\dotnetcore\DynService\Core\DynService.Core.csproj", "{E2FB8843-503A-4A22-923E-B12510233127}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DynServiceOData", "src\dotnetcore\DynService\OData\DynServiceOData.csproj", "{2238FCB1-3A83-46C2-873E-82DA4266069D}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "azurefunctionhandlers", "azurefunctionhandlers", "{BD804A75-9F3F-416C-BF6B-D3DF6C4A8DC0}"
Expand Down Expand Up @@ -186,6 +184,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
..\.editorconfig = ..\.editorconfig
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "dynservice", "dynservice", "{C264F34E-2CE0-4DCA-B22D-4155821BE611}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GxXsl", "src\dotnetcore\GxXsl\GxXsl.csproj", "{30E7E437-F9B0-42B8-9144-A8E8F972B462}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "mocking", "mocking", "{5045873B-E7CF-4317-94C1-0EF8623D23FA}"
Expand Down Expand Up @@ -394,10 +394,6 @@ Global
{251CCD53-21B3-4EBE-8627-49885C4E98B9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{251CCD53-21B3-4EBE-8627-49885C4E98B9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{251CCD53-21B3-4EBE-8627-49885C4E98B9}.Release|Any CPU.Build.0 = Release|Any CPU
{E2FB8843-503A-4A22-923E-B12510233127}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E2FB8843-503A-4A22-923E-B12510233127}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E2FB8843-503A-4A22-923E-B12510233127}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E2FB8843-503A-4A22-923E-B12510233127}.Release|Any CPU.Build.0 = Release|Any CPU
{2238FCB1-3A83-46C2-873E-82DA4266069D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2238FCB1-3A83-46C2-873E-82DA4266069D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2238FCB1-3A83-46C2-873E-82DA4266069D}.Release|Any CPU.ActiveCfg = Release|Any CPU
Expand Down Expand Up @@ -533,8 +529,8 @@ Global
{F6372249-AF37-4455-B572-5BDF8DE2ACC8} = {F82842DA-F15E-49C5-993E-4C269818FF1F}
{E9072D95-D116-4D4B-B981-46146BCDE052} = {F82842DA-F15E-49C5-993E-4C269818FF1F}
{A14C2C2C-ACE3-4712-A527-E4E5F02729FA} = {F900A4AD-7249-41B4-B918-CB9E8C73747C}
{B0DEB9ED-9E0A-42E3-BBE1-9F70DD78DC93} = {A14C2C2C-ACE3-4712-A527-E4E5F02729FA}
{4DC1C813-E7C1-442E-B7D6-C9B932A55759} = {A14C2C2C-ACE3-4712-A527-E4E5F02729FA}
{B0DEB9ED-9E0A-42E3-BBE1-9F70DD78DC93} = {C264F34E-2CE0-4DCA-B22D-4155821BE611}
{4DC1C813-E7C1-442E-B7D6-C9B932A55759} = {C264F34E-2CE0-4DCA-B22D-4155821BE611}
{42D048EC-29C5-4553-B301-A6A5A76A7FB8} = {A14C2C2C-ACE3-4712-A527-E4E5F02729FA}
{9C521E63-7B6F-4AD3-ACB5-132175D9413A} = {A14C2C2C-ACE3-4712-A527-E4E5F02729FA}
{277490D7-8834-4722-9084-E894F804C66A} = {2261B65E-3757-4E5B-9DCD-EAE8D1E236A3}
Expand All @@ -557,7 +553,6 @@ Global
{55297803-2DE8-48C4-AB65-9D19E77614E1} = {1D6F1776-FF4B-46C2-9B3D-BC46CCF049DC}
{251CCD53-21B3-4EBE-8627-49885C4E98B9} = {1D6F1776-FF4B-46C2-9B3D-BC46CCF049DC}
{79C9ECC6-2935-4C43-BF32-94698547F584} = {2261B65E-3757-4E5B-9DCD-EAE8D1E236A3}
{E2FB8843-503A-4A22-923E-B12510233127} = {79C9ECC6-2935-4C43-BF32-94698547F584}
{2238FCB1-3A83-46C2-873E-82DA4266069D} = {79C9ECC6-2935-4C43-BF32-94698547F584}
{BD804A75-9F3F-416C-BF6B-D3DF6C4A8DC0} = {C6AFB6A3-FF0B-4970-B1F1-10BCD3D932B2}
{41E1D031-799F-484F-85DE-7A30AF1A6FBA} = {BD804A75-9F3F-416C-BF6B-D3DF6C4A8DC0}
Expand Down Expand Up @@ -587,6 +582,7 @@ Global
{911BC7CC-4A07-408F-BA20-8BAB5355BE84} = {C8590651-46B6-4681-A6A0-0850B5A9A697}
{B59F76D8-FDB2-4F51-89DB-F15E9BDFF1DC} = {420E8A4A-11D9-42E9-BFB7-4325EA7330B8}
{D97E17A4-C945-4BF3-957E-F73142C4C6D0} = {947E032A-C385-4586-96E3-FC7D2767F082}
{C264F34E-2CE0-4DCA-B22D-4155821BE611} = {F1E13DF4-9F50-41A2-9DC3-04B673B21032}
{30E7E437-F9B0-42B8-9144-A8E8F972B462} = {2261B65E-3757-4E5B-9DCD-EAE8D1E236A3}
{5045873B-E7CF-4317-94C1-0EF8623D23FA} = {C6AFB6A3-FF0B-4970-B1F1-10BCD3D932B2}
{8E5A25F9-2D64-4742-8227-2A3C5816AFEC} = {5045873B-E7CF-4317-94C1-0EF8623D23FA}
Expand Down
21 changes: 21 additions & 0 deletions dotnet/src/dotnetcommon/DynService.Core/DynService.Core.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net462;net6.0</TargetFrameworks>
<RootNamespace>GeneXus.Data.NTier</RootNamespace>
<AssemblyName>GeneXus.Data.DynService.Core</AssemblyName>
<NoWarn>CA1812</NoWarn>
<PackageTags>Dynservice</PackageTags>
<PackageId>GeneXus.DynService.Core</PackageId>
</PropertyGroup>

<PropertyGroup Condition="'$(TargetFramework)'!='net462'">
<DefineConstants>NETCORE</DefineConstants>
</PropertyGroup>

<ItemGroup Condition="'$(TargetFramework)'!='net462'">
<ProjectReference Include="..\..\dotnetcore\GxClasses\GxClasses.csproj" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)'=='net462'">
<ProjectReference Include="..\..\dotnetframework\GxClasses\GxClasses.csproj" />
</ItemGroup>
</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -16,21 +16,20 @@ namespace GeneXus.Data.NTier
{
public class Query
{
private object mDataStoreHelper;

public string TableName { get; set; } = String.Empty;
public string[] Projection { get; set; } = Array.Empty<string>();
public string[] OrderBys { get; set; } = Array.Empty<string>();
public string[] Filters { get; set; } = Array.Empty<string>();
public string[] AssignAtts { get; set; } = Array.Empty<string>();
public IODataMap2[] SelectList { get; set; } = Array.Empty<IODataMap2>();
public VarValue[] Vars { get; set; } = Array.Empty<VarValue>();
public IEnumerable<string> Projection { get; set; } = Array.Empty<string>();
public IEnumerable<string> OrderBys { get; set; } = Array.Empty<string>();
public IEnumerable<string> Filters { get; set; } = Array.Empty<string>();
private List<KeyValuePair<string, string>> mAssignAtts;
public IEnumerable<KeyValuePair<string, string>> AssignAtts { get { return mAssignAtts ?? Array.Empty<KeyValuePair<string, string>>() as IEnumerable<KeyValuePair<string, string>>; } }
public IEnumerable<IODataMap2> SelectList { get; set; } = Array.Empty<IODataMap2>();

private List<VarValue> mVarValues;
public IEnumerable<VarValue> Vars { get { return (mVarValues ?? Array.Empty<VarValue>() as IEnumerable<VarValue>); } }
public CursorType CursorType { get; set; } = CursorType.Select;

public Query(object dataStoreHelper)
{
mDataStoreHelper = dataStoreHelper;
}
public Query(object dataStoreHelper) { }

public Query For(string v)
{
TableName = v;
Expand All @@ -54,9 +53,10 @@ public Query Filter(string[] filters)
return this;
}

public Query Set(string[] assignAtts)
public Query Set(string name, string value)
{
AssignAtts = assignAtts;
mAssignAtts = mAssignAtts ?? new List<KeyValuePair<string, string>>();
mAssignAtts.Add(new KeyValuePair<string, string>(name, value));
return this;
}

Expand All @@ -66,18 +66,19 @@ public Query SetMaps(IODataMap2[] iODataMap)
return this;
}

public Query SetVars(VarValue[] vars)
{
Vars = vars;
return this;
}

public Query SetType(CursorType cType)
{
CursorType = cType;
return this;
}

public Query AddConst(GXType gxType, object parm)
{
mVarValues = mVarValues ?? new List<VarValue>();
mVarValues.Add(new VarValue($":const{ mVarValues.Count + 1 }", gxType, parm));
return this;
}
}

public class VarValue
Expand All @@ -89,24 +90,18 @@ public class VarValue
public VarValue(string name, GXType type, object value)
{
Name = name;
Type = type;
Value = value;
}

}

public class QueryExpression
{
public string For { get; set; }
internal string[] Select { get; set; }
}



public interface IODataMap2
{
object GetValue(IOServiceContext serviceContext, RecordEntryRow currentEntry);
string GetName(IOServiceContext serviceContext);
void SetValue(IOServiceContext serviceContext, RecordEntryRow currentEntry, object value);
void SetValue(RecordEntryRow currentEntry, object value);
}


Expand All @@ -129,7 +124,7 @@ public virtual object GetValue(IOServiceContext context, RecordEntryRow currentE
throw new NotImplementedException();
}

public virtual void SetValue(IOServiceContext context, RecordEntryRow currentEntry, object value)
public virtual void SetValue(RecordEntryRow currentEntry, object value)
{
throw new NotImplementedException();
}
Expand Down Expand Up @@ -157,7 +152,15 @@ public interface IODataMap
void SetValue(IDictionary<string, object> currentEntry, object value);
}

public abstract class DynServiceDataStoreHelper : DataStoreHelperBase
public abstract class DynServiceDataStoreHelperBase : DataStoreHelperBase
{
public static object InvalidQuery(string msg)
{
throw new ServiceException(msg);
}
}

public abstract class DynServiceDataStoreHelper : DynServiceDataStoreHelperBase
{
public abstract Guid GetParmGuid(IDataParameterCollection parms, string parm);
public abstract string GetParmStr(IDataParameterCollection parms, string parm);
Expand Down
5 changes: 5 additions & 0 deletions dotnet/src/dotnetcommon/DynService.Core/GlobalSuppressions.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
// This file is used by Code Analysis to maintain SuppressMessage
// attributes that are applied to this project.
// Project-level suppressions either have no target or are given
// a specific target and scoped to a namespace, type, member, etc.

Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net462;net6.0</TargetFrameworks>
<RootNamespace>GeneXus.Data.NTier</RootNamespace>
<AssemblyName>GeneXus.Data.DynService.DynamoDB</AssemblyName>
<SignAssembly>false</SignAssembly>
<PackageTags>DynamoDB</PackageTags>
<PackageId>GeneXus.DynService.DynamoDB</PackageId>
</PropertyGroup>

<PropertyGroup Condition="'$(TargetFramework)'!='net462'">
<DefineConstants>NETCORE</DefineConstants>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="AWSSDK.DynamoDBv2" Version="3.7.0.103" />
<ProjectReference Include="..\DynService.Core\DynService.Core.csproj" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)'!='net462'">
<ProjectReference Include="..\..\dotnetcore\GxClasses\GxClasses.csproj" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)'=='net462'">
<ProjectReference Include="..\..\dotnetframework\GxClasses\GxClasses.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Update="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="3.3.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>
</Project>
Loading