public void ConfigureAdmin(IAdminBuilder adminBuilder) { adminBuilder.Register <Employee, EmployeeAdminService>(modelBuilder => { modelBuilder.GridBuilder.Title = "Employee"; modelBuilder.FormBuilder.Title = "Employee Details"; modelBuilder.GridBuilder .AddField(c => c.Name) .AddField(c => c.Designation) .AddField(c => c.Email) .AddField(c => c.Nationality) .AddField(c => c.IsActive, option => { option.DisplayName = "Is Active"; option.IsTrue = "Active"; option.IsFalse = "In Active"; }); modelBuilder.GridBuilder.DisplayFieldAs(c => c.IsActive, LabelType.Badge, c => c.IsActiveBadgeClass); modelBuilder.FormBuilder .AddKeyField(c => c.Id) .AddField(c => c.Name, option => { option.EnableIn = FormMode.Create; }) .AddField(c => c.Designation) .AddField(c => c.Email, option => option.ValidationType = ValidationType.Email) .AddField(c => c.IsActive) .AddSelectField(c => c.Nationality); modelBuilder.FormBuilder.Property(c => c.Nationality).HasLookup(sp => sp.GetService <EmployeeAdminService>().GetCountries(), ke => ke.Code, de => de.Name); }); adminBuilder.RegisterGrid <Customer, CustomerAdminGridService>(builder => { builder.Title = "Customers"; builder .AddKeyField(c => c.Id) .AddField(c => c.OrderId) .AddField(c => c.Name) .AddField(c => c.Email) .AddField(c => c.OrderDate) .AddField(c => c.OrderStatus) .AddField(c => c.ShipDate) .AddField(c => c.ShipCountry); builder.Property(c => c.ShipCountry).HasLookup(sp => sp.GetService <EmployeeAdminService>().GetCountries(), ke => ke.Code, de => de.Name); builder.Property(c => c.OrderStatus).HasLookup(sp => OrderStatus.OrderStatuses, ke => ke.Id, de => de.Name); builder.DisplayFieldAs(c => c.OrderStatus, LabelType.Badge, c => c.OrderStatusClass); builder.AddRowAction("MarkAsDelivered", "Mark As Delivered", (provider, item) => provider.GetService <CustomerAdminGridService>().MarkDelivered(item)); builder.HideEditButton(); }); adminBuilder.RegisterForm <Guest, EventFormService>(builder => { builder .AddFieldSet("General", fieldBuilder => { fieldBuilder .AddKeyField(c => c.Id) .AddField(p => p.Name) .AddSelectField(p => p.Gender) .AddField(p => p.Email, option => option.ValidationType = ValidationType.Email); }) .AddFieldSet("Dietary requirements", fieldBuilder => { fieldBuilder .AddField(p => p.IsTakePartInDinner) .AddSelectField(p => p.FoodType); }); builder.Property(f => f.FoodType) .ShowOn(f => f.IsTakePartInDinner) .ValidateOn(f => f.IsTakePartInDinner); builder.Property(f => f.Gender).HasLookup( sp => Gender.Genders, ke => ke.Id, de => de.Name); builder.Property(f => f.FoodType).HasLookup( sp => FoodType.FoodTypes, ke => ke.Id, de => de.Name); }); adminBuilder.RegisterTreeAndForm <Folder, FolderAdminService>(builder => { builder.TreeBuilder.Title = "File Manager"; builder.FormBuilder.Title = "File Manager"; builder.TreeBuilder.ConfigureTree(p => p.Id, p => p.Name, p => p.Parent, p => p.SubFolders, p => p.SortOrder); var formBuilder = builder.FormBuilder; var adminId = Guid.Parse("5308b86c-a2fc-4220-8ba2-47e7bec1938d"); var urlId = Guid.Parse("bfefa535-7af1-4ddc-82c0-c906c948367a"); var standardId = Guid.Parse("4c06dcfd-214f-45af-8404-ff84b412ab01"); formBuilder .AddFieldSet("General", fieldBuilder => { fieldBuilder .AddField(p => p.Name); }) .AddFieldSet("Permissions", fieldBuilder => { fieldBuilder.AddCheckBoxMatrix(p => p.PagePermissions, p => p.RoleId, p => p.PermissionId, p => p.Id, p => p.FolderId, typeof(Role), typeof(Permission), option => option.IsRequired = false); }); formBuilder.Property(f => f.PagePermissions).HasMatrixLookup <Role, Permission, Guid>( sp => sp.GetService <IRoleRepository>().GetRoles(), ke => ke.Id, de => de.Name, sp => sp.GetService <IPermissionRepository>().GetPagePermissions(), ke => ke.Id, de => de.Name); }); }
public void ConfigureAdmin(IAdminBuilder adminBuilder) { adminBuilder.RegisterForm <SiteSettingInfo, SiteSettingAdminService>(formBuilder => { formBuilder.Title = "Site Settings"; formBuilder .AddFieldSet("General", fieldBuilder => { fieldBuilder .AddField(f => f.SiteName) .AddField(f => f.SiteDescription, option => option.FieldType = FieldType.TextArea) .AddField(f => f.SiteAdminEmail, option => option.FieldType = FieldType.EmailAddress) .AddField(f => f.SiteRoot) .AddField(f => f.SiteHeaderTags) .AddSelectField(f => f.SiteLanguage); }) .AddFieldSet("Page Configuration", fieldBuilder => { fieldBuilder .AddSelectField(f => f.HomePage) .AddSelectField(f => f.LoginPage) .AddSelectField(f => f.RegistrationPage) .AddSelectField(f => f.RedirectAfterLogin) .AddSelectField(f => f.RedirectAfterLogout); }) .AddFieldSet("SMTP", fieldBuilder => { fieldBuilder .AddField(f => f.SmtpServerAndPort) .AddSelectField(f => f.SmtpAuthentication, de => de.Name, option => option.FieldType = FieldType.RadioButton) .AddField(f => f.SmtpEnableSSL) .AddField(f => f.SmtpUsername) .AddField(f => f.SmtpPassword, option => option.FieldType = FieldType.Password); }) .AddFieldSet("Appearance", fieldBuilder => { fieldBuilder .AddSelectField(f => f.DefaultLayout) .AddSelectField(f => f.DefaultTheme) .AddSelectField(f => f.DefaultAdminLayout) .AddSelectField(f => f.DefaultAdminTheme); }) .AddFieldSet("Security", fieldBuilder => { fieldBuilder .AddField(f => f.RegistrationEnabled) .AddField(f => f.EnableGoogleAuth) .AddField(f => f.GoogleClientId) .AddField(f => f.GoogleClientSecret) .AddField(f => f.EnableFacebookAuth) .AddField(f => f.FacebookAppId) .AddField(f => f.FacebookAppSecret) .AddField(f => f.EnableTwitterAuth) .AddField(f => f.TwitterConsumerKey) .AddField(f => f.TwitterConsumerSecret); }); formBuilder.Property(f => f.EnableGoogleAuth) .ShowOn(f => f.RegistrationEnabled) .ValidateOn(f => f.RegistrationEnabled); formBuilder.Property(f => f.EnableFacebookAuth) .ShowOn(f => f.RegistrationEnabled) .ValidateOn(f => f.RegistrationEnabled); formBuilder.Property(f => f.EnableTwitterAuth) .ShowOn(f => f.RegistrationEnabled) .ValidateOn(f => f.RegistrationEnabled); formBuilder.Property(f => f.GoogleClientId) .ShowOn(f => f.EnableGoogleAuth) .ValidateOn(f => f.EnableGoogleAuth); formBuilder.Property(f => f.GoogleClientSecret) .ShowOn(f => f.EnableGoogleAuth) .ValidateOn(f => f.EnableGoogleAuth); formBuilder.Property(f => f.FacebookAppId) .ShowOn(f => f.EnableFacebookAuth) .ValidateOn(f => f.EnableFacebookAuth); formBuilder.Property(f => f.FacebookAppSecret) .ShowOn(f => f.EnableFacebookAuth) .ValidateOn(f => f.EnableFacebookAuth); formBuilder.Property(f => f.TwitterConsumerKey) .ShowOn(f => f.EnableTwitterAuth) .ValidateOn(f => f.EnableTwitterAuth); formBuilder.Property(f => f.TwitterConsumerSecret) .ShowOn(f => f.EnableTwitterAuth) .ValidateOn(f => f.EnableTwitterAuth); formBuilder.Property(f => f.SiteLanguage).HasLookup( sp => sp.GetService <ILanguageManager>().GetAllLanguages(false), ke => ke.CultureCode, de => $"{de.EnglishName}"); formBuilder.Property(f => f.HomePage).HasLookup( sp => sp.GetService <SiteSettingAdminService>().GetPages(), ke => ke.Id, de => de.PageTranslation.Count > 0 ? de.PageTranslation.FirstOrDefault().Name : string.Empty); formBuilder.Property(f => f.LoginPage).HasLookup( sp => sp.GetService <SiteSettingAdminService>().GetPages(), ke => ke.Id, de => de.PageTranslation.Count > 0 ? de.PageTranslation.FirstOrDefault().Name : string.Empty); formBuilder.Property(f => f.RegistrationPage).HasLookup( sp => sp.GetService <SiteSettingAdminService>().GetPages(), ke => ke.Id, de => de.PageTranslation.Count > 0 ? de.PageTranslation.FirstOrDefault().Name : string.Empty); formBuilder.Property(f => f.RedirectAfterLogin).HasLookup( sp => sp.GetService <SiteSettingAdminService>().GetPages(), ke => ke.Id, de => de.PageTranslation.Count > 0 ? de.PageTranslation.FirstOrDefault().Name : string.Empty); formBuilder.Property(f => f.RedirectAfterLogout).HasLookup( sp => sp.GetService <SiteSettingAdminService>().GetPages(), ke => ke.Id, de => de.PageTranslation.Count > 0 ? de.PageTranslation.FirstOrDefault().Name : string.Empty); formBuilder.Property(f => f.SmtpAuthentication).HasLookup( sp => SMTPAuthentication.GetSmtpAuthentications(), ke => ke.Id, de => de.Name); formBuilder.Property(f => f.DefaultLayout).HasLookup( sp => sp.GetService <ILayoutManager>().GetPageLayouts(), ke => ke.Id, de => de.Name); formBuilder.Property(f => f.DefaultAdminLayout).HasLookup( sp => sp.GetService <ILayoutManager>().GetPageLayouts(), ke => ke.Id, de => de.Name); formBuilder.Property(f => f.DefaultTheme).HasLookup( sp => sp.GetService <SiteSettingAdminService>().GetThemes(), ke => ke.Id, de => de.Value); formBuilder.Property(f => f.DefaultAdminTheme).HasLookup( sp => sp.GetService <SiteSettingAdminService>().GetThemes(), ke => ke.Id, de => de.Value); }); }