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)); }
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)); } }
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)); } }
public RoleChecker( NavigationManager navigationManager, DapperCX <int, UserProfile> data, IOptions <RoleCheckerOptions> options) { _navManager = navigationManager; _data = data; _options = options.Value; }
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); } } }
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)); } }
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); } }
public ItemsModel(DapperCX <int, UserProfile> data) : base(data) { }
public MultiTenancyModel(DapperCX <int, UserProfile> data) : base(data) { }
public GridEditorModel(DapperCX <int, UserProfile> data) : base(data) { }
public BasePageModel(DapperCX <int, UserProfile> data) { Data = data; }
public StartupModel(DapperCX <int, UserProfile> data) : base(data) { }