Skip to content

Commit d5e7824

Browse files
author
Claudia Beatriz Murialdo Garrone
committed
Add async interfaces.
1 parent 4c87d15 commit d5e7824

File tree

3 files changed

+70
-14
lines changed

3 files changed

+70
-14
lines changed

dotnet/src/dotnetcore/GxClasses.Web/Middleware/HandlerFactory.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ public async Task Invoke(HttpContext context)
7575
handler.sendAdditionalHeaders();
7676
return Task.CompletedTask;
7777
});
78-
GXWebProcedure gxWebProc = handler as GXWebProcedure;
78+
GXHttpHandler gxWebProc = handler as GXHttpHandler;
7979
if (gxWebProc != null && gxWebProc.GetAsyncEnabledInternal())
8080
{
8181
await gxWebProc.ProcessRequestAsync(context);

dotnet/src/dotnetframework/GxClasses/Middleware/GXHttp.cs

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -296,7 +296,7 @@ private bool IsFullAjaxRequest(HttpContext httpContext)
296296
public virtual void InitializeDynEvents() { throw new Exception("The method or operation is not implemented."); }
297297
public virtual void initialize_properties() { throw new Exception("The method or operation is not implemented."); }
298298
public virtual void webExecute() { throw new Exception("The method or operation is not implemented."); }
299-
protected virtual Task WebExecuteAsync()
299+
public virtual Task WebExecuteAsync()
300300
{
301301
GXLogging.Warn(log, this.GetType().FullName + " not generated as async service");
302302
webExecute();
@@ -2945,10 +2945,10 @@ protected void initialize(int objClass, int objId, int dbgLines, long hash)
29452945
public abstract class GXWebComponent : GXHttpHandler
29462946
{
29472947

2948-
public abstract void componentstart();
2949-
public abstract void componentdraw();
2950-
public abstract void componentprepare(Object[] parms);
2951-
public abstract void componentbind(Object[] values);
2948+
public virtual void componentstart() { }
2949+
public virtual void componentdraw() { }
2950+
public virtual void componentprepare(Object[] parms) { }
2951+
public virtual void componentbind(Object[] values) { }
29522952
public abstract String getstring(String s);
29532953

29542954
public bool IsUrlCreated()
@@ -3096,6 +3096,27 @@ public virtual void componentjscripts()
30963096
public virtual void componentthemes()
30973097
{
30983098
}
3099+
public virtual async Task ComponentRestoreStateAsync(string sPPrefix, string sPSFPrefix)
3100+
{
3101+
await Task.CompletedTask;
3102+
}
3103+
public virtual async Task ComponentProcessAsync(string sPPrefix, string sPSFPrefix, string sEvt)
3104+
{
3105+
await Task.CompletedTask;
3106+
}
3107+
public virtual async Task ComponentPrepareAsync(Object[] parms)
3108+
{
3109+
await Task.CompletedTask;
3110+
}
3111+
public virtual async Task ComponentStartAsync()
3112+
{
3113+
await Task.CompletedTask;
3114+
}
3115+
public virtual async Task ComponentDrawAsync()
3116+
{
3117+
await Task.CompletedTask;
3118+
}
3119+
30993120
}
31003121

31013122
public class GXErrorWebComponent : GXWebComponent

dotnet/src/dotnetframework/GxClasses/View/GXGridStateHandler.cs

Lines changed: 43 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,43 @@
11

22
using System;
3+
using System.Threading.Tasks;
34
using GeneXus.Application;
45
using GeneXus.Core.genexus.common;
56

67
namespace GeneXus.WebControls
78
{
9+
public class GXGridStateHandlerAsync: GXGridStateHandler
10+
{
11+
readonly Func<Task> varsFromState;
12+
readonly Func<Task> varsToState;
13+
public GXGridStateHandlerAsync(IGxContext context, string gridName, string programName, Func<Task> varsFromState, Func<Task> varsToState)
14+
{
15+
this.gridName = $"{programName}_{gridName}_{GRID_STATE}";
16+
this.varsFromState = varsFromState;
17+
this.varsToState = varsToState;
18+
this.context = context;
19+
state = new SdtGridState(context);
20+
dirty = true;
21+
}
22+
protected override void ToState()
23+
{
24+
varsToState().GetAwaiter().GetResult();
25+
}
26+
protected override void FromState()
27+
{
28+
varsFromState().GetAwaiter().GetResult();
29+
}
30+
}
31+
832
public class GXGridStateHandler
933
{
10-
string gridName;
34+
protected string gridName;
1135
readonly Action varsFromState;
1236
readonly Action varsToState;
13-
IGxContext context;
14-
SdtGridState state;
15-
bool dirty;
16-
const string GRID_STATE = "GridState";
17-
37+
protected IGxContext context;
38+
protected SdtGridState state;
39+
protected bool dirty;
40+
protected const string GRID_STATE = "GridState";
1841
public GXGridStateHandler(IGxContext context, string gridName, string programName, Action varsFromState, Action varsToState)
1942
{
2043
this.gridName = $"{programName}_{gridName}_{GRID_STATE}";
@@ -24,10 +47,13 @@ public GXGridStateHandler(IGxContext context, string gridName, string programNam
2447
state = new SdtGridState(context);
2548
dirty = true;
2649
}
50+
internal GXGridStateHandler()
51+
{
52+
}
2753
public void SaveGridState()
2854
{
2955
state.FromJSonString(context.GetSession().Get(gridName));
30-
varsToState();
56+
ToState();
3157
context.GetSession().Set(gridName, state.ToJSonString());
3258
dirty = true;
3359
}
@@ -37,10 +63,19 @@ public void LoadGridState()
3763
{
3864
state = new SdtGridState(context);
3965
state.FromJSonString(context.GetSession().Get(gridName));
40-
varsFromState();
66+
FromState();
4167
dirty = true;
4268
}
4369
}
70+
71+
protected virtual void FromState()
72+
{
73+
varsFromState();
74+
}
75+
protected virtual void ToState()
76+
{
77+
varsToState();
78+
}
4479
public string FilterValues(int idx)
4580
{
4681
return state.gxTpr_Inputvalues[idx-1].gxTpr_Value;

0 commit comments

Comments
 (0)