public AdminkaCrudRoutinePageConsumer(PageModel pageModel, Referrer referrer,
                                       PageRoutineFeature pageRoutineFeature,
                                       Func <User, UserContext> createUserContext,
                                       ApplicationSettings applicationSettings, IMemoryCache memoryCache, MemberTag memberTag) :
     base(pageModel, pageRoutineFeature,
          getUserAndFailedActionResultInitialisedAsync:
          (aspRoutineFeature) =>
          AspNetCoreManager.GetUserAndFailedActionResultInitialisedAsync(
              applicationSettings,
              memberTag,
              pageModel,
              aspRoutineFeature,
              memoryCache,
              pageRoutineFeature),
          getContainerHandler: (aspRoutineFeature, getInput, user, containerFactory) =>
 {
     var userContext = createUserContext(user);
     return(MvcAppManager.GetContainerStorageHandler(
                containerFactory,
                memberTag,
                aspRoutineFeature,
                getInput,
                userContext,
                applicationSettings,
                uc => uc.AuditStamp
                ));
 })
 {
     this.Referrer = referrer;
 }
예제 #2
0
 public PageContainerRoutineHandler(
     PageModel pageModel,
     PageRoutineFeature pageRoutineFeature,
     ApplicationSettings applicationSettings,
     IMemoryCache memoryCache,
     MemberTag memberTag,
     Func <User, UserContext> createUserContext
     ) : base(
         pageModel,
         applicationSettings,
         memberTag,
         uc => uc.AuditStamp,
         uc => uc.AuditStamp,
         (aspRoutineFeature) =>
         AspNetCoreManager.GetUserAndFailedActionResultInitialisedAsync(
             applicationSettings,
             memberTag,
             pageModel,
             aspRoutineFeature,
             memoryCache,
             pageRoutineFeature),
         createUserContext
         )
 {
 }
예제 #3
0
        public static PageRoutineFeature SetAndGetPageRoutineFeature(PageModel pageModel, Referrer referrer)
        {
            var pageRoutineFeature = new PageRoutineFeature()
            {
                Referrer = referrer.Href
            };

            pageModel.HttpContext.Features.Set(pageRoutineFeature);
            return(pageRoutineFeature);
        }
예제 #4
0
 public PageContainerRoutineHandler(
     PageModel pageModel,
     PageRoutineFeature pageRoutineFeature,
     [CallerMemberName] string member = null) : this(
         pageModel,
         pageRoutineFeature,
         (ApplicationSettings)pageModel.HttpContext.RequestServices.GetService(typeof(ApplicationSettings)),
         (IMemoryCache)pageModel.HttpContext.RequestServices.GetService(typeof(IMemoryCache)),
         new MemberTag(pageModel.GetType().Namespace, pageModel.GetType().Name, member),
         u => new UserContext(u)
         )
 {
 }
예제 #5
0
 GetUserAndFailedActionResultInitialisedAsync(
     ApplicationSettings applicationSettings,
     MemberTag memberTag,
     PageModel pageModel,
     AspRoutineFeature aspRoutineFeature,
     IMemoryCache memoryCache,
     PageRoutineFeature pageRoutineFeature
     )
 {
     return(GetUserAndFailedActionResultInitialisedAsync(applicationSettings, memberTag,
                                                         getName: () => pageModel.User.Identity.Name,
                                                         systemIsInRole: g => pageModel.User.IsInRole(g),
                                                         aspRoutineFeature,
                                                         memoryCache,
                                                         getForbiddenActionResult: () => pageModel.RedirectToPage(
                                                             "AccessDenied",
                                                             new { pageRoutineFeature.Referrer }),
                                                         exceptionToActionResult: null
                                                         ));
 }