Activities of "liangshiwei"

Hi,

See https://support.abp.io/QA/Questions/102/Identity-Server-running-slow

Hi,

Maybe it has nothing to do with cross-domain, can you share the application logs? (blazor and host)

if I make the pages Angular-based instead - how am I supposed to inject them into existing hard-coded Dashboard layout?

Just an idea, you can output an html and redirect to the angular page in js:

internal sealed class AngularPage : PageBase
{
    public const string Title = "AngularPage";
    public const string PageRoute = "/AngularPage";

    private static readonly string PageHtml;

    static AngularPage()
    {
        PageHtml = "script window.location.href="angular page url" script";
    }

    public override void Execute()
    {
        WriteEmptyLine();
        Layout = new LayoutPage(Title);
        WriteLiteralLine(PageHtml);
        WriteEmptyLine();
    }
}

There is a lot of work to switch to angular, I think using Vue is a better way.

how am I supposed to interact with server-side extension code? In the given case, server-side part for Hangfire is based on IDashboardDispatcher, which mainly uses Dashboard context and the context is passed through RazorPage class - so all existing logic and even markup is built on server-side...

IDashboardDispatcher has been exposed as an endpoint, you can send HTTP requests on the front end, just like RecurringJobAdmin does

At the same time, we don't want to create a new Hangfire dashboard - we just want to easily extend its features.

I suggest you continue to use Vue to extend the features, Vue is a progressive framework, you can even use it like jquery.

Hi,

You can change it according to your needs, for example, read a date from the settings.

Hi,

You can customize the implementation of IBlobNamingNormalizer:

[Dependency(ReplaceServices = true)]
[ExposeServices(typeof(IBlobNamingNormalizer))]
public class MyMinioBlobNamingNormalizer : MinioBlobNamingNormalizer
{
    public override string NormalizeContainerName(string containerName)
    {
        containerName = base.NormalizeContainerName(containerName);

        return containerName.Replace("{date}", DateTime.Now.ToShortDateString());
    }
}

Your container:

[BlobContainerName("bucket-{date}")]
public class DayRollingContainer
{

}

Hi,

Now I know what you want.

You need to convert the RecurringJobAdmin project into abp module. You can create an angular UI application module and install the module to your application.

Hi,

I think the problem related to your database.

How to reproduce the problem?

Hi,

For now, you can try:

public static class MyStringExtensions
{
    public static string NormalizeReturnUrl(this string returnUrl, IUrlHelper url, string returnUrlHash)
    {
        returnUrl = NormalizeReturnUrl(returnUrl, url);

        if (!returnUrlHash.IsNullOrWhiteSpace())
        {
            returnUrl = returnUrl + returnUrlHash;
        }

        return returnUrl;
    }

    private static string NormalizeReturnUrl(string returnUrl, IUrlHelper url)
    {
        if (returnUrl.IsNullOrEmpty())
        {
            return "~/";
        }

        if (url.IsLocalUrl(returnUrl) || returnUrl.StartsWith("your application url (eg. http://localhost:4200)"))
        {
            return returnUrl;
        }

        return "~/";
    }
}

[Dependency(ReplaceServices = true)]
[ExposeServices(typeof(RegisterModel))]
public class MyRegisterModel : RegisterModel
{
    protected override string GetRedirectUrl(string returnUrl, string returnUrlHash = null)
    {
        return returnUrl.NormalizeReturnUrl(Url, returnUrlHash);
    }

}

[Dependency(ReplaceServices = true)]
[ExposeServices(typeof(ResetPasswordConfirmationModel))]
public class MyResetPasswordConfirmationModel : ResetPasswordConfirmationModel
{
    protected override string GetRedirectUrl(string returnUrl, string returnUrlHash = null)
    {
        return returnUrl.NormalizeReturnUrl(Url, returnUrlHash);
    }
}

[Dependency(ReplaceServices = true)]
[ExposeServices(typeof(ResetPasswordModel))]
public class MyResetPasswordModel : ResetPasswordModel
{
    public MyResetPasswordModel(ITenantResolveResultAccessor tenantResolveResultAccessor) : base(tenantResolveResultAccessor)
    {
    }

    protected override string GetRedirectUrl(string returnUrl, string returnUrlHash = null)
    {
        return returnUrl.NormalizeReturnUrl(Url, returnUrlHash);
    }

    public override async Task<IActionResult> OnPostAsync()
    {
        ValidateModel();

        try
        {
            await AccountAppService.ResetPasswordAsync(
                new ResetPasswordDto
                {
                    UserId = UserId,
                    ResetToken = ResetToken,
                    Password = Password
                }
            );
        }
        catch (AbpIdentityResultException e)
        {
            if (!string.IsNullOrWhiteSpace(e.Message))
            {
                Alerts.Warning(e.Message);
                return Page();
            }

            throw;
        }

        //TODO: Try to automatically login!
        return RedirectToPage("./ResetPasswordConfirmation", new
        {
            returnUrl = GetRedirectUrl(ReturnUrl, ReturnUrlHash)
        });
    }
}

The problem has been solved. Because you changed the default page size.

Hi,

For blog module problem: https://github.com/abpframework/abp/issues/6473#issuecomment-738703428

We have written documentation for all commercial modules : ), and we will to improve the documentation of open source modules,they are already in the milestone. Thanks.

About payment module document, see: https://docs.abp.io/en/commercial/latest/modules/payment

Showing 5311 to 5320 of 5950 entries
Made with ❤️ on ABP v9.1.0-preview. Updated on November 11, 2024, 11:11