Example #1
0
        public void FinaliseModel(UserSessionModel admin, UserModel model, bool isEditing = false, bool userTypeChanged = false)
        {
            businessService.FinaliseModel(admin, model.Business, isEditing);

            addressService.FinaliseModel(model.Address);

            if (!model.IsRegistering)
            {
                // Dropdowns
                model.Businesses = htmlService.DropDownModelBusinesses(admin, model.Business.BusinessId);

                model.UserTypes = htmlService.DropDownModelUserTypes(admin, model.UserTypeId);

                // Permissions

                var id         = model.UserId ?? 0;
                var businessId = (model.Business != null && model.Business.BusinessId.HasValue) ? model.Business.BusinessId.Value : 0;

                if (!model.Approved.HasValue || !model.Approved.Value)
                {
                    // Pull from business defaults
                    model.CityAreas       = htmlService.CheckBoxListModelBusinessPermissions(admin, businessId, model.CityAreas, PermissionTypeEnum.CityArea);
                    model.Brands          = htmlService.CheckBoxListModelBusinessPermissions(admin, businessId, model.Brands, PermissionTypeEnum.Brand);
                    model.ProductFamilies = htmlService.CheckBoxListModelBusinessPermissions(admin, businessId, model.ProductFamilies, PermissionTypeEnum.ProductFamily);
                    model.Tools           = htmlService.CheckBoxListModelBusinessPermissions(admin, businessId, model.Tools, PermissionTypeEnum.Tool);
                }
                else
                {
                    model.CityAreas       = htmlService.CheckBoxListModelUserPermissions(admin, id, model.CityAreas, PermissionTypeEnum.CityArea, isEditing);
                    model.Brands          = htmlService.CheckBoxListModelUserPermissions(admin, id, model.Brands, PermissionTypeEnum.Brand, isEditing);
                    model.ProductFamilies = htmlService.CheckBoxListModelUserPermissions(admin, id, model.ProductFamilies, PermissionTypeEnum.ProductFamily, isEditing);
                    model.Tools           = htmlService.CheckBoxListModelUserPermissions(admin, id, model.Tools, PermissionTypeEnum.Tool, isEditing);
                }

                if (userTypeChanged || !model.Approved.HasValue || !model.Approved.Value)
                {
                    model.SystemAccesses = htmlService.CheckBoxListModelUserPermissions(admin, businessId, model.UserTypeId, model.SystemAccesses, PermissionTypeEnum.SystemAccess, isEditing);
                }
                else
                {
                    model.SystemAccesses = htmlService.CheckBoxListModelUserPermissions(admin, id, model.SystemAccesses, PermissionTypeEnum.SystemAccess, isEditing);
                }
            }
        }