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);
            });
        }
Exemplo n.º 2
0
        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);
            });
        }