Käyttäjän "Leonardo.Willrich" toiminnot

Hi @Alper,

Thank you for your answer. That is a solution, but, it is not dynamic at all. If in future a new field is added to the grid, there will be a need to add a new condition in the switch clause.

AspNetZero implements that extension for EF which makes life easier. I just don't want to implement those extensions and then in the next versions ABP.IO Commercial framework release the same extension, it would be waste of time from my side as a framework client.

I've worked out my issue with this code:

var list = Repository.Join(_networkTypeRepository, A => A.NetworkTypeId, B => B.Id, (supplyNetwork, networkType) => new { supplyNetwork, networkType }).ToList();
            var dtos = list.Select(x => {
                var dto = ObjectMapper.Map<SupplyNetwork, SupplyNetworkDto>(x.supplyNetwork);
                dto.NetworkTypeName = x.networkType.Name;
                return dto;
            }).AsQueryable().OrderBy(input.Sorting).ToList();
            dtos = dtos.Skip(input.SkipCount).Take(input.MaxResultCount).ToList();

It will work because this CRUD will always have few records. But, it seems inefficient when there are too many records because it will bring all record from the database to the server and then perform the pagination stuff (Skip / Take). I have to do that to be able to convert my entity into my dto class and then filter using the Dto fields, including the relationships.

What would be recommended for this scenario?

What would you implement to resolve the Tutorial sort issue?

Is there some plan to implement those extension in the framework in future as AspNetZero has done? For example:

Hi, thank you for your answer!

I am really sorry, I've research here in the support forum but I forgot to check that on Github issues. The issue is exactly that one, so, I'll need the next release to get that sorted.

About the Blazorise component, that Bar would suit for me. I didn't know the sidebar was obsolete!

Hi,

I have removed WebDAVModule and not it is working. Also, I've done changes as image below:

source: https://stackoverflow.com/questions/12440277/how-do-i-enable-http-put-and-delete-for-asp-net-mvc-in-iis

My new Web.Config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <location path="." inheritInChildApplications="false">
    <system.webServer>
			<modules>
				<remove name="WebDAVModule" />
			</modules>
      <handlers>
        <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
				<remove name="WebDAV" />
      </handlers>
      <aspNetCore processPath="dotnet" arguments=".\TVD_Holdings_Ltd.AvalancheOCP.HttpApi.Host.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="InProcess" />
    </system.webServer>
  </location>
</configuration>
<!--ProjectGuid: 96e5259e-59a3-4faf-bcd1-5bf8e74ef82c-->

Hi,

I've found in the class PermissionDefinitionProvider a parameter for each permission that defines the multiTenancySide. Does that mean to define the menu as well?

public class AvalancheOCPPermissionDefinitionProvider : PermissionDefinitionProvider
    {
        public override void Define(IPermissionDefinitionContext context)
        {
            var myGroup = context.AddGroup(AvalancheOCPPermissions.GroupName);

            myGroup.AddPermission(AvalancheOCPPermissions.Dashboard.Host, L("Permission:Dashboard"), MultiTenancySides.Host);
            myGroup.AddPermission(AvalancheOCPPermissions.Dashboard.Tenant, L("Permission:Dashboard"), MultiTenancySides.Tenant);

            var settings = context.AddGroup(AvalancheOCPPermissions.AvalancheOCPSettings, L("Menu:AvalancheOCPSettings"), MultiTenancySides.Tenant);

            var causes = settings.AddPermission(AvalancheOCPPermissions.Causes.Default, L("Menu:Causes"), MultiTenancySides.Tenant);
            causes.AddChild(AvalancheOCPPermissions.Causes.Create, L("Permission:Causes.Create"), MultiTenancySides.Tenant);
            causes.AddChild(AvalancheOCPPermissions.Causes.Edit, L("Permission:Causes.Edit"), MultiTenancySides.Tenant);
            causes.AddChild(AvalancheOCPPermissions.Causes.Delete, L("Permission:Causes.Delete"), MultiTenancySides.Tenant);

            var supplyNetworks = settings.AddPermission(AvalancheOCPPermissions.SupplyNetworks.Default, L("Menu:SupplyNetworks"), MultiTenancySides.Tenant);
            supplyNetworks.AddChild(AvalancheOCPPermissions.SupplyNetworks.Create, L("Permission:SupplyNetworks.Create"), MultiTenancySides.Tenant);
            supplyNetworks.AddChild(AvalancheOCPPermissions.SupplyNetworks.Edit, L("Permission:SupplyNetworks.Edit"), MultiTenancySides.Tenant);
            supplyNetworks.AddChild(AvalancheOCPPermissions.SupplyNetworks.Delete, L("Permission:SupplyNetworks.Delete"), MultiTenancySides.Tenant);

            myGroup.AddPermission(AvalancheOCPPermissions.OutageReportsGrid.Default, L("Permission:OutageReportGrid"), MultiTenancySides.Tenant);

            //Define your own permissions here. Example:
            //myGroup.AddPermission(AvalancheOCPPermissions.MyPermission1, L("Permission:MyPermission1"));
        }

        private static LocalizableString L(string name)
        {
            return LocalizableString.Create<AvalancheOCPResource>(name);
        }
    }

Ok, I got it. Thank you!

Thank you for your answer.

That works fine when I am adding a new entity. When editing, it doesn't work, the Save button is disabled by default. I just have created a new OnStatusChanged method for editing adding the option None. See below the new method:

protected Task OnStatusChangedEditing(ValidationsStatusChangedEventArgs eventArgs)
{
    saveDisabled = eventArgs.Status != ValidationStatus.None && eventArgs.Status != ValidationStatus.Success;
    return Task.CompletedTask;
}
Vastaus

Thank you very much! That works fine for me. I didn't notice that part of documents for ABP Framework > UI > Blazor before.

Hi,

The code above doesn't work. I had to add the <ChildContent> markup for the <SelectItem> loop. See below:

<Validation>
    <Field>
        <Row>
            <Column ColumnSize="ColumnSize.Is5">
                <FieldLabel>@L["SupplyNetwork:NetworkType"]</FieldLabel>
            </Column>
            <Column ColumnSize="ColumnSize.Is7">
                <Select TValue="int" @bind-SelectedValue="@EditingEntity.NetworkTypeId">
                    <ChildContent>
                        <SelectItem TValue="int" Value="0">@L["SupplyNetwork:SelectNetworkType"]</SelectItem>
                        @foreach (var network in networkTypeList)
                        {
                            <SelectItem TValue="int" Value="@network.Id">
                                @network.Name
                            </SelectItem>
                        }
                    </ChildContent>
                    <Feedback>
                        <ValidationError />
                    </Feedback>
                </Select>
            </Column>
        </Row>
    </Field>
</Validation>

Regarding the documatation, I am trying my best with that. I haven't seen nothing about Validation in ABP Framework or ABP Commercial documents and I've found something in Blasorise documentation, however, I haven't found any example for <SELECT>. Can you please refer where I would be found that?

Näytetään 131 - 140/145 tietueesta
Made with ❤️ on ABP v8.2.0-preview Updated on maaliskuuta 25, 2024, 15.11