Beispiel #1
0
        public void ConfigureAdmin(IAdminBuilder adminBuilder)
        {
            //adminBuilder.RegisterGrid<Page, PageManagementAdminService>(builder =>
            //{
            //    builder
            //        .AddKeyField(r => r.Id)
            //        .AddField(r => r.Name, option => option.DisplayName = "Name / Title")
            //        .AddField(r => r.RecycleItemTypeString, option => option.DisplayName = "Item Type");

            //    builder.DisplayFieldAs(c => c.Name, LabelType.Icon, c => c.RecycleItemTypeIconClass);

            //    builder.AddRowAction("Restore", "Restore",
            //        (provider, item) => provider.GetService<PageManagementAdminService>().Restore(item));

            //    builder.HideEditButton();
            //});

            adminBuilder.RegisterTreeAndForm <PageViewModel, PageManagementAdminService>(builder =>
            {
                builder.TreeBuilder.Title = "Page Management";
                builder.FormBuilder.Title = "Page Detail";
                builder.TreeBuilder.ConfigureTree(p => p.Id,
                                                  p => p.Name,
                                                  p => p.Parent,
                                                  p => p.ChildPage,
                                                  p => p.PageOrder);

                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
                    .AddSelectField(p => p.PageType, null, option => option.DisplayName = "Page Type")
                    .AddField(p => p.Name)
                    .AddField(p => p.Title)
                    .AddField(p => p.Description, option =>
                    {
                        option.FieldType  = FieldType.TextArea;
                        option.IsRequired = false;
                    })
                    .AddField(p => p.PageHeaderTags, option =>
                    {
                        option.FieldType  = FieldType.TextArea;
                        option.IsRequired = false;
                    })
                    .AddSelectField(p => p.Module)
                    .AddField(p => p.ModelName, option => option.DisplayName         = "Model Name")
                    .AddField(p => p.RedirectUrl, option => option.DisplayName       = "Redirect Link")
                    .AddField(p => p.IsSystem, option => option.DisplayName          = "Is System")
                    .AddField(p => p.IsIncludedInMenu, option => option.DisplayName  = "Include in Menu")
                    .AddSelectField(p => p.Theme, null, option => option.DisplayName = "Theme");
                })

                .AddFieldSet("Permissions", fieldBuilder =>
                {
                    fieldBuilder.AddCheckBoxMatrix(p => p.PagePermissions,
                                                   p => p.RoleId,
                                                   p => p.PermissionId,
                                                   p => p.Id,
                                                   p => p.PageId, typeof(Role), typeof(Permission),
                                                   option => option.IsRequired = false);
                });

                builder.AddChildConfig(p => p.PageTranslation, modelBuilder =>
                {
                    var formBuilder = modelBuilder.FormBuilder;

                    modelBuilder.GridBuilder
                    .AddField(p => p.Language, option => option.DisplayName = "Language")
                    .AddField(p => p.Name)
                    .AddField(p => p.Title);

                    formBuilder
                    .AddSelectField(p => p.Language)
                    .AddField(p => p.Name)
                    .AddField(p => p.Title)
                    .AddField(p => p.Description, option =>
                    {
                        option.FieldType  = FieldType.TextArea;
                        option.IsRequired = false;
                    })
                    .AddField(p => p.PageHeaderTags, option =>
                    {
                        option.FieldType  = FieldType.TextArea;
                        option.IsRequired = false;
                    })
                    .AddField(p => p.RedirectUrl, option => option.IsRequired = false);

                    formBuilder.Property(p => p.Language)
                    .HasLookup(sp => sp.GetService <PageManagementAdminService>().GetTranslateLanguages(),
                               language => language.CultureCode,
                               language => language.EnglishName);
                });

                builder.ShowChildConfigOn(p => p.PageTranslation,
                                          provider => provider.GetService <PageManagementAdminService>().IsSiteMultilingual());

                //formBuilder.Property(f => f.Name)
                //    .ShowOn(f => f.PageType != null && (f.PageType.Id == standardId || f.PageType.Id == adminId))
                //    .ValidateOn(f => f.PageType != null && (f.PageType.Id == standardId || f.PageType.Id == adminId));

                formBuilder.Property(f => f.Title)
                .ShowOn(f => f.PageType != null && (f.PageType.Id == standardId || f.PageType.Id == adminId))
                .ValidateOn(f => f.PageType != null && (f.PageType.Id == standardId || f.PageType.Id == adminId));

                formBuilder.Property(f => f.Description)
                .ShowOn(f => f.PageType != null && f.PageType.Id == standardId);

                formBuilder.Property(f => f.Module)
                .ShowOn(f => f.PageType != null && f.PageType.Id == adminId)
                .ValidateOn(f => f.PageType != null && f.PageType.Id == adminId);

                formBuilder.Property(f => f.ModelName)
                .ShowOn(f => f.PageType != null && f.PageType.Id == adminId)
                .ValidateOn(f => f.PageType != null && f.PageType.Id == adminId);

                formBuilder.Property(f => f.RedirectUrl)
                .ShowOn(f => f.PageType != null && f.PageType.Id == urlId)
                .ValidateOn(f => f.PageType != null && f.PageType.Id == urlId);

                formBuilder.Property(f => f.PageType).HasLookup(
                    sp => sp.GetService <PageManagementAdminService>().GetPageTypes(),
                    ke => ke.Id,
                    de => de.Name);

                formBuilder.Property(f => f.Module).HasLookup(
                    sp => sp.GetService <PageManagementAdminService>().GetModules(),
                    ke => ke.Id,
                    de => de.Name);

                formBuilder.Property(f => f.Theme).HasLookup(
                    sp => sp.GetService <PageManagementAdminService>().GetThemes(),
                    ke => ke.Id,
                    de => de.Value);

                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.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);
            });
        }