Skip to content

Commit f1a48ed

Browse files
committed
Move non session public convenience methods out of ServiceStackController
1 parent 14970ed commit f1a48ed

File tree

1 file changed

+23
-19
lines changed

1 file changed

+23
-19
lines changed

src/ServiceStack.Mvc/ServiceStackController.cs

Lines changed: 23 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -180,10 +180,6 @@ public override JsonResult Json(object data)
180180
public virtual IDbConnection Db => ServiceStackProvider.Db;
181181

182182
public virtual IRedisClient Redis => ServiceStackProvider.Redis;
183-
184-
#if NET472 || NETSTANDARD
185-
public virtual ValueTask<IRedisClientAsync> GetRedisAsync() => ServiceStackProvider.GetRedisAsync();
186-
#endif
187183

188184
public virtual IMessageProducer MessageProducer => ServiceStackProvider.MessageProducer;
189185

@@ -199,32 +195,26 @@ public override JsonResult Json(object data)
199195

200196
public virtual bool IsAuthenticated => ServiceStackProvider.IsAuthenticated;
201197

202-
public virtual IAuthSession GetSession(bool reload = true) => ServiceStackProvider.GetSession(reload);
198+
protected virtual IAuthSession GetSession(bool reload = true) => ServiceStackProvider.GetSession(reload);
203199

204-
public virtual Task<IAuthSession> GetSessionAsync(bool reload = false, CancellationToken token=default) =>
200+
protected virtual Task<IAuthSession> GetSessionAsync(bool reload = false, CancellationToken token=default) =>
205201
ServiceStackProvider.GetSessionAsync(reload, token);
206202

207-
public virtual Task<TUserSession> SessionAsAsync<TUserSession>(CancellationToken token=default) =>
203+
protected virtual Task<TUserSession> SessionAsAsync<TUserSession>(CancellationToken token=default) =>
208204
ServiceStackProvider.SessionAsAsync<TUserSession>(token);
209205

210206
//don't expose public generic methods in MVC Controllers
211-
public virtual TUserSession SessionAs<TUserSession>() => ServiceStackProvider.SessionAs<TUserSession>();
207+
protected virtual TUserSession SessionAs<TUserSession>() => ServiceStackProvider.SessionAs<TUserSession>();
212208

213209
[Obsolete("Use SaveSessionAsync")]
214-
public virtual void SaveSession(IAuthSession session, TimeSpan? expiresIn = null) => ServiceStackProvider.Request.SaveSession(session, expiresIn);
210+
protected virtual void SaveSession(IAuthSession session, TimeSpan? expiresIn = null) => ServiceStackProvider.Request.SaveSession(session, expiresIn);
215211

216-
public virtual Task SaveSessionAsync(IAuthSession session, TimeSpan? expiresIn = null, CancellationToken token=default) =>
212+
protected virtual Task SaveSessionAsync(IAuthSession session, TimeSpan? expiresIn = null, CancellationToken token=default) =>
217213
ServiceStackProvider.Request.SaveSessionAsync(session, expiresIn, token);
218214

219-
public virtual void ClearSession() => ServiceStackProvider.ClearSession();
215+
protected virtual void ClearSession() => ServiceStackProvider.ClearSession();
220216

221-
public virtual Task ClearSessionAsync(CancellationToken token=default) => ServiceStackProvider.ClearSessionAsync(token);
222-
223-
public virtual T TryResolve<T>() => ServiceStackProvider.TryResolve<T>();
224-
225-
public virtual T ResolveService<T>() => ServiceStackProvider.ResolveService<T>();
226-
227-
public virtual object ForwardRequestToServiceStack(IRequest request = null) => ServiceStackProvider.Execute(request ?? ServiceStackProvider.Request);
217+
protected virtual Task ClearSessionAsync(CancellationToken token=default) => ServiceStackProvider.ClearSessionAsync(token);
228218

229219
public virtual IServiceGateway Gateway => ServiceStackProvider.Gateway;
230220
public virtual RpcGateway RpcGateway => ServiceStackProvider.RpcGateway;
@@ -247,10 +237,24 @@ protected override void Dispose(bool disposing)
247237
EndServiceStackRequest();
248238
}
249239

250-
public virtual void EndServiceStackRequest() =>
240+
protected virtual void EndServiceStackRequest() =>
251241
HostContext.AppHost.OnEndRequest(ServiceStackRequest);
252242
}
253243

244+
// Move non session public convenience methods out of ServiceStackController so it doesn't interfere with routes.MapMvcAttributeRoutes()
245+
public static class ServiceStackControllerExt
246+
{
247+
public static object ForwardRequestToServiceStack(this ServiceStackController controller, IRequest request = null)
248+
=> controller.ServiceStackProvider.Execute(request ?? controller.ServiceStackProvider.Request);
249+
250+
#if NET472 || NETSTANDARD
251+
public static ValueTask<IRedisClientAsync> GetRedisAsync(this ServiceStackController controller) =>
252+
controller.ServiceStackProvider.GetRedisAsync();
253+
#endif
254+
public static T TryResolve<T>(this ServiceStackController controller) => controller.ServiceStackProvider.TryResolve<T>();
255+
public static T ResolveService<T>(this ServiceStackController controller) => controller.ServiceStackProvider.ResolveService<T>();
256+
}
257+
254258
#if !NETSTANDARD
255259
public class ServiceStackJsonResult : JsonResult
256260
{

0 commit comments

Comments
 (0)