Я получаю ошибку Http 404 в результате работы над фреймворком abp.io

Я новичок в работе над фреймворком abp.io, а именно над Angular + Entity Framework Core.

Я хочу иметь возможность создавать или отображать список объектов созданного мной класса.

Например, я создал класс Address на уровне домена.

Вот его AppService на уровне приложения:

namespace ASKOM.RefPlusStudio.core.Services
{
[Authorize(corePermissions.Addresses.Default)]
public class AddressAppService : coreAppService, IAddressAppService
{
    private readonly IAddressRepository _addressRepository;
    private readonly AddressManager _addressManager;

    public AddressAppService(IAddressRepository addressRepository, AddressManager addressManager)
    {
        _addressRepository = addressRepository;
        _addressManager = addressManager;
    }

    [Authorize(corePermissions.Addresses.Create)]
    public async Task<AddressDto> CreateAsync(CreateUpdateAddressDto input)
    {
        var address = await _addressManager.CreateAsync(
            input.StreetNumber,
            input.StreetName,
            input.PostalCode,
            input.City,
            input.Country
        );

        await _addressRepository.InsertAsync(address);

        return ObjectMapper.Map<Address, AddressDto>(address);
    }

    [Authorize(corePermissions.Addresses.Delete)]
    public async Task DeleteAsync(Guid id)
    {
        await _addressRepository.DeleteAsync(id);
    }

    public async Task<AddressDto> GetAsync(Guid id)
    {
        var address = await _addressRepository.GetAsync(id);
        return ObjectMapper.Map<Address, AddressDto>(address);
    }

    public async Task<PagedResultDto<AddressDto>> GetListAsync(GetAddressListDto input)
    {
        if (input.Sorting.IsNullOrWhiteSpace())
        {
            input.Sorting = nameof(Address.Country);
        }

        var addresses = await _addressRepository.GetListAsync(
            input.SkipCount,
            input.MaxResultCount,
            input.Sorting,
            input.Filter
        );

        var totalCount = await AsyncExecuter.CountAsync(
            _addressRepository.WhereIf(
                !input.Filter.IsNullOrWhiteSpace(),
                address => address.Country.Contains(input.Filter)
            )
        );

        return new PagedResultDto<AddressDto>(
            totalCount,
            ObjectMapper.Map<List<Address>, List<AddressDto>>(addresses)
        );
    }

    [Authorize(corePermissions.Addresses.Edit)]
    public async Task UpdateAsync(Guid id, CreateUpdateAddressDto input)
    {
        var address = await _addressRepository.GetAsync(id);
           
            address.StreetNumber = input.StreetNumber;
            address.StreetName = input.StreetName;
            address.PostalCode = input.PostalCode;
            address.City = input.City;
            address.Country = input.Country;

        await _addressRepository.UpdateAsync(address);
    }
 }
 } 

Я дал им все необходимые разрешения.

Вот corePermissions.cs:

namespace ASKOM.RefPlusStudio.core.Permissions
{
public static class corePermissions
{
    public const string GroupName = "core";

    //Add your own permission names. Example:
    //public const string MyPermission1 = GroupName + ".MyPermission1";

    public static class Addresses
    {
        public const string Default = GroupName + ".Addresses";
        public const string Create = Default + ".Create";
        public const string Edit = Default + ".Edit";
        public const string Delete = Default + ".Delete";
    }
}
}

Я хотел посмотреть, может ли он отображать список адресов, поэтому я сделал статический в DataSeeder:

namespace ASKOM.RefPlusStudio.core
{
public class coreDataSeederContributor : IDataSeedContributor, ITransientDependency
{
    private readonly IRepository<Address, Guid> _addressRepository;
    private readonly IGuidGenerator _guidGenerator;

    public coreDataSeederContributor(IRepository<Address, Guid> addressRepository, IGuidGenerator guidGenerator)
    {
        _addressRepository = addressRepository;
        _guidGenerator = guidGenerator;
    }

    public async Task SeedAsync(DataSeedContext context)
    {
        if (await _addressRepository.GetCountAsync() > 0)
        {
            return;
        }
        var address = new Address(

                id: _guidGenerator.Create(),
                streetNumber: 07,
                streetName: "Med Salah Belhaj",
                postalCode: 2080,
                city: "Ariana",
                country: "Tunisie"
            );
            //autoSave: true
        
        await _addressRepository.InsertAsync(address);
    }
}
}

Вот результат на Swagger UI:

получить-адрес-чванство

Когда я пытаюсь открыть URL-адрес запроса, он показывает следующее:

error-404-access-denied

Я уверен, что, возможно, что-то забыл, и поэтому я получаю отказ в доступе по URL-адресу запроса, но я действительно не знаю, что это такое, потому что я новичок в этом.

Не могли бы вы мне помочь? Спасибо


person Nouha Balti    schedule 20.11.2020    source источник
comment
Позвольте нам продолжить это обсуждение в чате.   -  person José Polanco    schedule 20.11.2020


Ответы (1)


Возникла проблема с базой данных. Вот почему он не прочитал данные, которые я предоставил в DataSeedProvider.

person Nouha Balti    schedule 27.11.2020