Esempio n. 1
0
        public static async Task <RedirectResult> DeleteAndRedirectAsync <TModel, TIdentity, TUser>(
            this DapperCX <TIdentity, TUser> crudService, TIdentity id, string redirect) where TUser : IUserBase
        {
            await crudService.DeleteAsync <TModel>(id);

            return(new RedirectResult(redirect));
        }
Esempio n. 2
0
 public static async Task <SelectList> QuerySelectListAsync <TIdentity, TUser>(
     this DapperCX <TIdentity, TUser> crudService,
     Query <SelectListItem> query, object selectedValue = null) where TUser : IUserBase
 {
     using (var cn = crudService.GetConnection())
     {
         return(await SelectListQuery.ExecuteInternalAsync(query, cn, selectedValue));
     }
 }
Esempio n. 3
0
 public static async Task <TResult> QuerySingleOrDefaultAsync <TResult, TIdentity, TUser>(
     this DapperCX <TIdentity, TUser> crudService,
     Query <TResult> query) where TUser : IUserBase
 {
     using (var cn = crudService.GetConnection())
     {
         return(await query.ExecuteSingleOrDefaultAsync(cn));
     }
 }
Esempio n. 4
0
 public RoleChecker(
     NavigationManager navigationManager,
     DapperCX <int, UserProfile> data,
     IOptions <RoleCheckerOptions> options)
 {
     _navManager = navigationManager;
     _data       = data;
     _options    = options.Value;
 }
Esempio n. 5
0
 public static async Task CreateSeedDataAsync(this DapperCX <int, UserProfile> data)
 {
     using (var cn = data.GetConnection())
     {
         foreach (var row in Permission.SeedData)
         {
             await data.MergeAsync(row);
         }
         foreach (var row in RecurringTaskType.SeedData)
         {
             await data.MergeAsync(row);
         }
     }
 }
Esempio n. 6
0
        public static async Task <RedirectResult> DeleteAndRedirectAsync <TModel, TIdentity, TUser>(
            this DapperCX <TIdentity, TUser> crudService, TIdentity id, Func <TModel, Exception, RedirectResult> redirect,
            Func <TModel, Task> onSuccess = null, Action <TModel, Exception> onException = null) where TUser : IUserBase
        {
            var model = await crudService.GetAsync <TModel>(id);

            try
            {
                await crudService.DeleteAsync <TModel>(id);

                onSuccess?.Invoke(model);
                return(redirect.Invoke(model, null));
            }
            catch (Exception exc)
            {
                onException?.Invoke(model, exc);
                return(redirect.Invoke(model, exc));
            }
        }
Esempio n. 7
0
        public static async Task <RedirectResult> SaveAndRedirectAsync <TModel, TIdentity, TUser>(
            this DapperCX <TIdentity, TUser> crudService, TModel model, Func <TModel, Exception, RedirectResult> redirect,
            ChangeTracker <TModel> changeTracker = null, Action <TModel> beforeSave             = null,
            Func <TModel, Task> onSuccess        = null, Action <TModel, Exception> onException = null) where TUser : IUserBase
        {
            beforeSave?.Invoke(model);

            try
            {
                var result = await crudService.SaveAsync(model, changeTracker);

                onSuccess?.Invoke(model);
                return(redirect.Invoke(model, null));
            }
            catch (Exception exc)
            {
                onException?.Invoke(model, exc);
                return(redirect.Invoke(model, exc));
            }
        }
        /// <summary>
        /// In a multi-tenant app, users would have processes for joining and leaving a tenant.
        /// For this sample app intended to run locally, we can generate a sample tenant and assume the user always belongs to it.
        /// In this app, a tenant is a "Workspace"
        /// </summary>
        public static async Task InitDefaultTenantAsync(this DapperCX <int, UserProfile> data)
        {
            if (data.HasUser && !data.User.WorkspaceId.HasValue)
            {
                // find or create default workspace
                var wsId = await data.MergeAsync(new Workspace()
                {
                    Name = "Default Workspace"
                });

                // add current user if not there already
                await data.MergeAsync(new WorkspaceUser()
                {
                    WorkspaceId = wsId,
                    UserId      = data.User.UserId
                });

                // set the current workspace on the user profile row
                data.User.WorkspaceId = wsId;
                await data.UpdateUserAsync(field => field.WorkspaceId);
            }
        }
Esempio n. 9
0
 public ItemsModel(DapperCX <int, UserProfile> data) : base(data)
 {
 }
Esempio n. 10
0
 public MultiTenancyModel(DapperCX <int, UserProfile> data) : base(data)
 {
 }
Esempio n. 11
0
 public GridEditorModel(DapperCX <int, UserProfile> data) : base(data)
 {
 }
Esempio n. 12
0
 public BasePageModel(DapperCX <int, UserProfile> data)
 {
     Data = data;
 }
Esempio n. 13
0
 public StartupModel(DapperCX <int, UserProfile> data) : base(data)
 {
 }