public void ConfigureAdmin(IAdminBuilder adminBuilder)
        {
            adminBuilder.Register <Core.Common.DomainTypes.Language, LanguageAdminService>(builder =>
            {
                var gridBuilder = builder.GridBuilder;
                var formBuilder = builder.FormBuilder;

                gridBuilder.Title = "Languages";
                formBuilder.Title = "Language";

                gridBuilder
                .AddKeyField(r => r.CultureCode)
                .AddField(r => r.EnglishName, option => option.DisplayName = "English Name")
                .AddField(r => r.NativeName, option => option.DisplayName  = "Native Name")
                .AddField(r => r.IsActive, option =>
                {
                    option.DisplayName = "Is Active";
                    option.IsTrue      = "Active";
                    option.IsFalse     = "In Active";
                });

                gridBuilder.DisplayFieldAs(c => c.IsActive, LabelType.Badge, c => c.IsActiveBadgeClass);


                formBuilder
                .AddField(l => l.EnglishName, option =>
                {
                    option.DisplayName = "English Name";
                    option.ShowIn      = FormMode.Update;
                    option.IsReadOnly  = true;
                })
                .AddField(l => l.NativeName, option =>
                {
                    option.DisplayName = "Native Name";
                    option.ShowIn      = FormMode.Update;
                    option.IsReadOnly  = true;
                })
                .AddField(l => l.CultureCode, option =>
                {
                    option.DisplayName = "Culture Code";
                    option.ShowIn      = FormMode.Update;
                    option.IsReadOnly  = true;
                })
                .AddSelectField(l => l.SelectedLanguage, null, option =>
                {
                    option.DisplayName = "Select Language";
                    option.ShowIn      = FormMode.Create;
                });

                formBuilder.AddField(l => l.IsActive);

                formBuilder.Property(l => l.IsActive).EnableOn(l => l.CultureCode != "en-US");

                formBuilder.Property(l => l.SelectedLanguage).HasLookup(
                    sp => sp.GetService <LanguageAdminService>().GetAllLanguages(),
                    language => language.CultureCode,
                    language => language.EnglishName);
            });
        }
Beispiel #2
0
        public DataInitializer(IUserWithoutInvestorBuilder userWithoutInvestorBuilder,
                               IUserWithInvestorBuilder userWithInvestorBuilder, IAdminBuilder adminBuilder,
                               IUserService userService, ILogger <DataInitializer> logger)
        {
            _userWithoutInvestorBuilder = userWithoutInvestorBuilder;
            _userWithInvestorBuilder    = userWithInvestorBuilder;
            _adminBuilder = adminBuilder;

            _userService = userService;
            _logger      = logger;
        }
Beispiel #3
0
        public void ConfigureAdmin(IAdminBuilder adminBuilder)
        {
            adminBuilder.Register <User>(modelBuilder =>
            {
                modelBuilder.FormBuilder
                .AddField(u => u.FirstName).AddInlineField(u => u.LastName);

                modelBuilder.FormBuilder
                .AddFieldSet("General", fieldBuilder =>
                             fieldBuilder.AddField(s => s.FirstName).AddInlineField(s => s.LastName)
                             );
            });
        }
Beispiel #4
0
        public void ConfigureAdmin(IAdminBuilder adminBuilder)
        {
            adminBuilder.Register <Role, SecurityRoleAdminService>(modelBuilderAction: builder =>
            {
                var gridBuilder = builder.GridBuilder;
                var formBuilder = builder.FormBuilder;

                gridBuilder.Title = "Security Roles";
                formBuilder.Title = "Role";

                gridBuilder
                .AddKeyField(r => r.Id)
                .AddField(r => r.Name, option => option.DisplayName = "Role Name");


                formBuilder
                .AddField(l => l.Name, option =>
                {
                    option.DisplayName = "Role Name";
                });
            });
        }
Beispiel #5
0
        public void ConfigureAdmin(IAdminBuilder adminBuilder)
        {
            adminBuilder.RegisterGrid <RecycleItem, RecycleAdminService>(builder =>
            {
                builder.Title = "Recycle Bin";
                builder
                .AddKeyField(r => r.Id)
                .AddField(r => r.Name, option => option.DisplayName            = "Name / Title")
                .AddField(r => r.RecycleItemType, option => option.DisplayName = "Item Type");

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

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

                builder.Property(f => f.RecycleItemType).HasLookup(sp => RecycleItemType.GetRecycleItemTypes(),
                                                                   ke => ke.Id,
                                                                   de => de.Name);

                builder.HideEditButton();
            });
        }
Beispiel #6
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);
            });
        }
        public void ConfigureAdmin(IAdminBuilder adminBuilder)
        {
            adminBuilder.Register <Module, ModuleAdminService>(modelBuilder =>
            {
                modelBuilder.GridBuilder.Title = "Modules";
                modelBuilder.FormBuilder.Title = "Module";

                modelBuilder.GridBuilder
                .AddField(c => c.Label)
                .AddField(c => c.Name)
                .AddField(c => c.Version)
                .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.Label)
                .AddField(c => c.Name, option => { option.EnableIn = FormMode.Create; })
                .AddField(c => c.IsActive)
                .AddField(c => c.Description)
                .AddField(c => c.Version);

                modelBuilder.AddChildConfig(s => s.ModuleView, (childForm) =>
                {
                    childForm.GridBuilder
                    .AddField(c => c.DisplayName);

                    childForm.GridBuilder.DisplayFieldAs(c => c.DisplayName, LabelType.Icon, c => c.IconClass);

                    childForm.FormBuilder
                    .AddKeyField(c => c.Id)
                    .AddField(c => c.DisplayName, option => option.EnableIn = FormMode.Create)
                    .AddSelectField(c => c.ModuleViewType, de => de.ControlType)
                    .AddField(c => c.ControllerName)
                    .AddField(c => c.ControllerNamespace)
                    .AddField(c => c.ActionName)
                    .AddField(c => c.IconClass)
                    .AddField(c => c.IconImage)
                    .AddField(c => c.IsDefault)
                    .AddMultiselectField(c => c.Properties, c => $"{c.Label} ({c.Name})");

                    childForm.FormBuilder.Property(u => u.ModuleViewType).HasLookup(sp => sp.GetService <ModuleAdminService>().GetActionType(),
                                                                                    ke => ke.Id,
                                                                                    de => de.ControlType);

                    childForm.FormBuilder.Property(c => c.Properties).HasLookup(sp => sp.GetService <ModuleAdminService>().GetProperties(),
                                                                                ke => ke.Id,
                                                                                de => $"{de.Label} ({de.Name})");
                });

                modelBuilder.FormBuilder.SetCustomValidationFor(c => c.Name,
                                                                (sp, moduleName) =>
                                                                sp.GetService <ModuleAdminService>().ValidateModuleName(moduleName));
            });
        }
Beispiel #9
0
        public void ConfigureAdmin(IAdminBuilder adminBuilder)
        {
            adminBuilder.Register <ContentType, ContentTypeAdminService>(modelBuilder =>
            {
                modelBuilder.GridBuilder.Title = "Content Types";
                modelBuilder.FormBuilder.Title = "Content Type";

                modelBuilder.GridBuilder
                .AddField(c => c.Label)
                .AddField(c => c.Name)
                .AddField(c => c.IsActive, option =>
                {
                    option.DisplayName = "Is Active";
                    option.IsTrue      = "Active";
                    option.IsFalse     = "In Active";
                });

                modelBuilder.GridBuilder.DisplayFieldAs(c => c.Label, LabelType.Icon, c => c.IconClass);
                modelBuilder.GridBuilder.DisplayFieldAs(c => c.IsActive, LabelType.Badge, c => c.IsActiveBadgeClass);

                modelBuilder.FormBuilder
                .AddKeyField(c => c.Id)
                .AddField(c => c.Label)
                .AddField(c => c.Name, option =>
                {
                    option.EnableIn = FormMode.Create;
                })
                .AddField(c => c.IconClass, option => option.DisplayName = "Icon")
                .AddField(c => c.IsActive, option => option.DisplayName  = "Is Active")
                .AddField(c => c.IsList, option => option.DisplayName    = "Is List")
                .AddMultiselectField(c => c.Properties, c => $"{c.Label} ({c.Name})");

                modelBuilder.AddChildConfig(c => c.ContentTypeFields, (childForm) =>
                {
                    childForm.GridBuilder
                    .AddField(c => c.FieldName, option => option.DisplayName            = "Field Name")
                    .AddField(c => c.FieldLabel, option => option.DisplayName           = "Field Label")
                    .AddField(c => c.ContentFieldTypeName, option => option.DisplayName = "Field Type")
                    .AddField(c => c.IsShownOnList, option => option.DisplayName        = "Is Shown On List")
                    .AddField(c => c.IsShownOnPreview, option => option.DisplayName     = "Is Shown On Preview")
                    .EnableSortingBy(c => c.SortOrder,
                                     (provider, pageNo, pageSize, contentTypes) => provider.GetService <ContentTypeAdminService>().SortContentType(pageNo, pageSize, contentTypes));

                    childForm.FormBuilder
                    .AddKeyField(c => c.Id)
                    .AddSelectField(c => c.ContentFieldType, c => c.Label)
                    .AddField(c => c.FieldName, option => option.DisplayName        = "Field Name")
                    .AddField(c => c.FieldLabel, option => option.DisplayName       = "Field Label")
                    .AddField(c => c.FieldDescription, option => option.DisplayName = "Field Description")
                    .AddField(c => c.IsShownOnList, option => option.DisplayName    = "Is Shown On List")
                    .AddField(c => c.IsShownOnPreview, option => option.DisplayName = "Is Shown On Preview");

                    childForm.FormBuilder
                    .Property(u => u.ContentFieldType)
                    .HasLookup(sp => sp.GetService <IContentTypeRepository>().GetContentFieldTypes(),
                               ke => ke.Id,
                               de => de.Label);
                });


                modelBuilder.FormBuilder.Property(c => c.Properties).HasLookup(sp => sp.GetService <ContentTypeAdminService>().GetProperties(),
                                                                               ke => ke.Id,
                                                                               de => $"{de.Label} ({de.Name})");

                modelBuilder.FormBuilder.SetCustomValidationFor(c => c.Name,
                                                                (sp, contentTypeName) =>
                                                                sp.GetService <ContentTypeAdminService>().ValidateContentTypeName(contentTypeName));
            });

            adminBuilder.Register <LayoutType, LayoutTypeAdminService>(modelBuilder =>
            {
                modelBuilder.AdminTitle = "Layout Type";

                modelBuilder.GridBuilder
                .AddField(l => l.Label)
                .AddField(l => l.Name)
                .AddField(l => l.IsActive, option =>
                {
                    option.DisplayName = "Is Active";
                    option.IsTrue      = "Active";
                    option.IsFalse     = "In Active";
                });

                modelBuilder.GridBuilder.DisplayFieldAs(l => l.Label, LabelType.Icon, l => l.IconClass);
                modelBuilder.GridBuilder.DisplayFieldAs(l => l.IsActive, LabelType.Badge, l => l.IsActiveBadgeClass);

                modelBuilder.FormBuilder
                .AddKeyField(l => l.Id)
                .AddField(l => l.Label)
                .AddField(l => l.Name, option =>
                {
                    option.EnableIn = FormMode.Create;
                })
                .AddField(l => l.IconClass)
                .AddField(l => l.IsActive)
                .AddMultiselectField(l => l.AllowedLayoutTypes)
                .AddMultiselectField(l => l.Properties, c => $"{c.Label} ({c.Name})");


                modelBuilder.FormBuilder.Property(l => l.AllowedLayoutTypes).HasLookup(sp => sp.GetService <LayoutTypeAdminService>().GetLayoutTypes(),
                                                                                       ke => ke.Id,
                                                                                       de => $"{de.Label} ({de.Name})");

                modelBuilder.FormBuilder.Property(l => l.Properties).HasLookup(sp => sp.GetService <LayoutTypeAdminService>().GetProperties(),
                                                                               ke => ke.Id,
                                                                               de => $"{de.Label} ({de.Name})");

                modelBuilder.FormBuilder.SetCustomValidationFor(l => l.Name,
                                                                (sp, layoutTypeName) =>
                                                                sp.GetService <LayoutTypeAdminService>().ValidateLayoutTypeName(layoutTypeName));
            });

            adminBuilder.Register <Property, PropertyAdminService>(modelBuilder =>
            {
                modelBuilder.AdminTitle = "Properties";

                modelBuilder.GridBuilder
                .AddField(p => p.Label)
                .AddField(p => p.Name)
                .AddField(p => p.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(p => p.Id)
                .AddField(p => p.Label)
                .AddField(p => p.Name, option => { option.EnableIn = FormMode.Create; })
                .AddField(p => p.Description, option => { option.FieldType = FieldType.TextArea; })
                .AddField(p => p.IsActive)

                .AddField(p => p.IsMoreOption)
                .AddField(p => p.DefaultValue, option => { option.IsRequired = false; })
                .AddSelectField(p => p.OptionList, p => p.Label, option => { option.IsRequired = false; })
                .AddSelectField(p => p.DefaultValuePropertyOption, p => p.Label, option => { option.IsRequired = false; });

                modelBuilder.FormBuilder.Property(p => p.DefaultValue)
                .ShowOn(p => !p.IsMoreOption)
                .ValidateOn(p => !p.IsMoreOption);

                modelBuilder.FormBuilder.Property(p => p.OptionList)
                .ShowOn(p => p.IsMoreOption)
                .ValidateOn(p => p.IsMoreOption);

                modelBuilder.FormBuilder.Property(p => p.DefaultValuePropertyOption)
                .ShowOn(p => p.IsMoreOption)
                .ValidateOn(p => p.IsMoreOption);

                modelBuilder.FormBuilder.Property(p => p.OptionList).HasLookup(sp => sp.GetService <PropertyAdminService>().GetOptionList(),
                                                                               ke => ke.Id,
                                                                               de => $"{de.Label}");

                modelBuilder.FormBuilder.Property(p => p.DefaultValuePropertyOption).HasLookup((sp, filterParam) => sp.GetService <PropertyAdminService>().GetPropertyOption(filterParam),
                                                                                               ke => ke.Id,
                                                                                               de => $"{de.Label} ({de.Name})",
                                                                                               property => property.OptionList);

                modelBuilder.FormBuilder.SetCustomValidationFor(p => p.Name,
                                                                (sp, propertyName) =>
                                                                sp.GetService <PropertyAdminService>().ValidatePropertyName(propertyName));
            });

            adminBuilder.Register <OptionList, OptionListAdminService>(modelBuilder =>
            {
                modelBuilder.AdminTitle = "Option List";

                modelBuilder.GridBuilder
                .AddField(p => p.Label)
                .AddField(p => p.Name)
                .AddField(p => p.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(p => p.Id)
                .AddField(p => p.Label)
                .AddField(p => p.Name, option => { option.EnableIn = FormMode.Create; })
                .AddField(p => p.IsActive);

                modelBuilder.AddChildConfig(s => s.List, (childForm) =>
                {
                    childForm.GridBuilder
                    .AddField(c => c.Name)
                    .AddField(c => c.Label);

                    childForm.FormBuilder
                    .AddKeyField(c => c.Id)
                    .AddField(c => c.Name)
                    .AddField(c => c.Label);
                });

                modelBuilder.FormBuilder.SetCustomValidationFor(p => p.Name,
                                                                (sp, propertyName) =>
                                                                sp.GetService <OptionListAdminService>().ValidatePropertyName(propertyName));
            });
        }
Beispiel #10
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);
            });
        }
        public void ConfigureAdmin(IAdminBuilder adminBuilder)
        {
            adminBuilder.Register <User, UserAdminService>(modelBuilder =>
            {
                modelBuilder.GridBuilder.Title = "Users";
                modelBuilder.FormBuilder.Title = "User";

                modelBuilder.GridBuilder
                .AddField(u => u.FirstName)
                .AddField(u => u.LastName)
                .AddField(u => u.Email);

                modelBuilder.FormBuilder
                .AddKeyField(u => u.Id)
                //.AddField(u => u.UserName, option => option.ValidationType = ValidationType.UserExist)
                .AddField(u => u.FirstName)
                .AddField(u => u.LastName)
                .AddField(u => u.Password, option =>
                {
                    option.FieldType      = FieldType.Password;
                    option.ShowIn         = FormMode.Create;
                    option.ValidationType = ValidationType.Password;
                })
                //.AddField(u => u.PasswordConfirm, option => option.AddIn = AddInMode.Add)
                .AddField(u => u.Email, option =>
                {
                    option.ShowIn         = FormMode.Create;
                    option.ValidationType = ValidationType.UserExistByEmail;
                })
                .AddMultiselectField(u => u.Roles);

                modelBuilder.FormBuilder.AddFormAction("UnlockUser", "Unlock User",
                                                       (sp, user) => sp.GetService <UserAdminService>().UnlockUserAccount(user));

                modelBuilder.FormBuilder.AddFormAction("LockUser", "Lock User",
                                                       (sp, user) => sp.GetService <UserAdminService>().LockUserAccount(user));

                modelBuilder.FormBuilder.Property(u => u.Roles).HasLookup(sp => sp.GetService <IRoleRepository>().GetRoles(),
                                                                          ke => ke.Id,
                                                                          de => de.Name);

                modelBuilder.AddCustomForm <PasswordReset>("PasswordReset", formBuilder =>
                {
                    formBuilder.Title = "Password Reset";
                    formBuilder
                    .AddKeyField(f => f.Id)
                    .AddField(f => f.CurrentPassword, option =>
                    {
                        option.FieldType   = FieldType.Password;
                        option.DisplayName = "Current Password";
                    })
                    .AddField(f => f.NewPassword, option =>
                    {
                        option.FieldType      = FieldType.Password;
                        option.DisplayName    = "New Password";
                        option.ValidationType = ValidationType.Password;
                    });

                    formBuilder.SetFormOption(formOption =>
                    {
                        formOption.SaveButtonText = "Reset Password";
                    });

                    formBuilder.OnSubmit((sp, form) => sp.GetService <UserAdminService>().ResetPassword(form));
                });
            });
        }
Beispiel #12
0
        public void ConfigureAdmin(IAdminBuilder adminBuilder)
        {
            adminBuilder.MapperConfiguration = BlogMapper.MapperConfiguration;

            adminBuilder.Register <DTO.Blog, IBlogService>(modelBuilder =>
            {
                modelBuilder.GridBuilder
                .AddField(p => p.Name);

                modelBuilder.FormBuilder
                .AddKeyField(p => p.Id)
                .AddField(p => p.Name);
            });

            adminBuilder.Register <DTO.Post, IPostService>(modelBuilder =>
            {
                modelBuilder.GridBuilder.Title = "Posts";
                modelBuilder.FormBuilder.Title = "Post";

                modelBuilder.GridBuilder
                .AddField(p => p.Blog)
                .AddField(p => p.Title)
                .AddField(p => p.Category)
                .AddField(p => p.Tags)
                .AddField(p => p.CreatedOn, option => option.Format      = "dd.MM.yyyy")
                .AddField(p => p.CreatedBy, option => option.DisplayName = "Author");

                modelBuilder.FormBuilder
                .AddKeyField(p => p.Id)
                .AddSelectField(p => p.Blog)
                .AddField(p => p.Title)
                .AddField(p => p.Slug)
                .AddField(s => s.Summary)
                .AddField(s => s.Thumbnail)
                .AddField(s => s.Content)
                .AddSelectField(s => s.Category, expr => expr.Name)
                .AddInlineMultiSelectField <DTO.Tag>(s => s.Tags, expr => expr.Name)
                .AddField(p => p.CreatedOn, option => option.Format = "dd.MM.yyyy");


                modelBuilder.FormBuilder.SetCustomValidationFor(c => c.Slug,
                                                                (sp, slug) =>
                                                                sp.GetService <IPostService>().ValidateSlug(slug));

                modelBuilder.FormBuilder.Property(c => c.Slug).AutoFillBasedOn(p => p.Title,
                                                                               (sp, title) =>
                                                                               sp.GetService <IPostService>().GetSlugFor(title));

                modelBuilder.FormBuilder
                .Property(p => p.Tags)
                .AddItemBy(t => t.Name);

                modelBuilder.FormBuilder.Property(u => u.Blog).HasLookup(sp => sp.GetService <IBlogService>().GetBlogs(),
                                                                         ke => ke.Id,
                                                                         de => de.Name);

                modelBuilder.FormBuilder.Property(u => u.Category).HasLookup(sp => sp.GetService <ICategoryService>().GetCategories(),
                                                                             ke => ke.Id,
                                                                             de => de.Name);

                modelBuilder.FormBuilder.Property(u => u.Tags).HasLookup(sp => sp.GetService <ITagService>().GetTags(),
                                                                         ke => ke.Id,
                                                                         de => de.Name);

                modelBuilder.FormBuilder.AddFormAction("Publish", "Publish",
                                                       (sp, post) => sp.GetService <IPostService>().PublishPost(post));


                modelBuilder.AddChildConfig(s => s.Comments, (childForm) =>
                {
                    childForm.FormBuilder
                    .AddKeyField(c => c.Id)
                    .AddField(c => c.UserName)
                    .AddField(c => c.Comment)
                    .AddField(c => c.CreatedOn)
                    .AddField(c => c.IsApproved);
                });
            });

            adminBuilder.Register <DTO.Category, ICategoryService>(modelBuilder =>
            {
                modelBuilder.GridBuilder
                .AddField(p => p.Name);

                modelBuilder.FormBuilder
                .AddKeyField(p => p.Id)
                .AddField(p => p.Name);
            });

            adminBuilder.Register <DTO.Tag, ITagService>(modelBuilder =>
            {
                modelBuilder.GridBuilder
                .AddField(p => p.Name);

                modelBuilder.FormBuilder
                .AddKeyField(p => p.Id)
                .AddField(p => p.Name);
            });
        }
        public void ConfigureAdmin(IAdminBuilder adminBuilder)
        {
            adminBuilder.MapperConfiguration = BlogMapper.MapperConfiguration;

            adminBuilder.Register <DTO.Post>(modelBuilder =>
            {
                modelBuilder.GridBuilder.Title = "Posts";
                modelBuilder.FormBuilder.Title = "Post";

                modelBuilder.GridBuilder
                .AddField(p => p.Title)
                .AddField(p => p.Category)
                .AddField(p => p.Tags)
                .AddField(p => p.CreatedOn, option => option.Format      = "dd.MM.yyyy")
                .AddField(p => p.CreatedBy, option => option.DisplayName = "Author");

                modelBuilder.FormBuilder
                .AddKeyField(p => p.Id)
                .AddField(p => p.Title)
                .AddField(s => s.Summary)
                .AddField(s => s.Thumbnail)
                .AddField(s => s.Content)
                .AddSelectField(s => s.Category, expr => expr.Name)
                .AddInlineMultiSelectField <DTO.Tag>(s => s.Tags, expr => expr.Name)
                .AddField(p => p.CreatedOn, option => option.Format = "dd.MM.yyyy");

                modelBuilder.FormBuilder
                .Property(p => p.Tags)
                .AddItemBy(t => t.Name);

                modelBuilder.AddChildConfig(s => s.Comments, (childForm) =>
                {
                    childForm.FormBuilder
                    .AddKeyField(c => c.Id)
                    .AddField(c => c.UserName)
                    .AddField(c => c.Comment)
                    .AddField(c => c.CreatedOn)
                    .AddField(c => c.IsApproved);
                });
            });

            adminBuilder.Register <DTO.Category>(modelBuilder =>
            {
                modelBuilder.GridBuilder
                .AddField(p => p.Name);

                modelBuilder.FormBuilder
                .AddKeyField(p => p.Id)
                .AddField(p => p.Name);
            });

            adminBuilder.Register <DTO.Tag>(modelBuilder =>
            {
                modelBuilder.GridBuilder
                .AddField(p => p.Name);

                modelBuilder.FormBuilder
                .AddKeyField(p => p.Id)
                .AddField(p => p.Name);
            });
        }