{ "ServiceKey": , "ServiceDns": , "DownstreamPathTemplate": "/api/product-service/{everything}", "DownstreamScheme": "https", "DownstreamHostAndPorts": [ { "Host": "localhost", "Port": 44361 } ], "UpstreamPathTemplate": "/api/product-service/{everything}", "UpstreamHttpMethod": [ "Put", "Delete", "Get", "Post" ] },
is there any documentation about "ServiceDns" on ocelot configuration?
I would like to know:
1: how to replace or override a function over EntityHelper or any other static helper. EntityHelper.TrySetId is causing a lot of problems on my system, the GUIDs do not match the standard for GUIDs [a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[afA-F0-9]{12}
2: if it is possible to stop the Id generation setting as default configuration on module setup
3: One example of how to use DisableIdGenerationAttribute
Error on generating GUID, portion of code from repository to set Id
Class EfCoreRepository
`protected virtual void CheckAndSetId(TEntity entity) { if (entity is IEntity
protected virtual void TrySetGuidId(IEntity<Guid> entity)
{
if (entity.Id != default)
{
return;
}
EntityHelper.TrySetId(
entity,
() => GuidGenerator.Create(),
true
);
}`
the guid generated does not match the pattern for GUIDs [a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12} based on https://datatracker.ietf.org/doc/html/rfc4122
Partial solution
public class GuidValueGenerator : ValueGenerator<Guid> { private readonly IGuidGenerator _guidGenerator; private readonly string pattern = @"^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$";
public override bool GeneratesTemporaryValues => false;
public GuidValueGenerator()
{
var options = Options.Create(new AbpSequentialGuidGeneratorOptions());
options.Value.DefaultSequentialGuidType = SequentialGuidType.SequentialAtEnd;
_guidGenerator = new SequentialGuidGenerator(options);
}
public override Guid Next(EntityEntry entry)
{
var result = GenerateNextValue();
string json = JsonConvert.SerializeObject(entry.Entity);
WriteOnText(result.ToString());
WriteOnText(json);
return result;
}
public Guid GenerateNextValue()
{
var result = _guidGenerator.Create();
if (!Regex.IsMatch(result.ToString(), pattern))
{
return GenerateNextValue();
}
return result;
}
public void WriteOnText(string newGuid)
{
string filePath = @"D:\guid-lines.txt"; // Replace with your file path
// Open the file for writing
using (StreamWriter writer = new StreamWriter(filePath, true))
{
writer.WriteLine(newGuid);
}
}
}
I am facing problems to connect between micro services - sync. I know the problem is under my environment due to I tried to replicate on a empty solution from the beginning and it worked correctly.
So I would like to know if you could help me to find the error on my environment, and which information could be useful to share with you.
As initial thought I would like to share with you the error that I am facing is fired by ApiDescriptionFinder.FindActionAsync
throw new AbpException($"Could not found remote action for method: {method} on the URL: {baseUrl}");
after the call to the function throw the interface.
As second thought I already have an integration to identity service from the same microservice, so I do not know why I am facing this error
I would like some help to display labels on Dropdowns using Enums
public enum ContactType
{
NotSelected = 0, // Label: "Not Selected"
/// <remarks/>
[System.Xml.Serialization.XmlEnum("1")]
Administrative_Assistant = 1, // Label: "Administrative Assistant (101) "
/// <remarks/>
[System.Xml.Serialization.XmlEnum("2")]
Medical_Director = 2, // Label: "Medical Director (911)"
/// <remarks/>
[System.Xml.Serialization.XmlEnum("3")]
Quality_Performance_Improvement_Specialist = 3, // Label: "QA Improvement Specialist (301)"
/// <remarks/>
[System.Xml.Serialization.XmlEnum("4")]
Other = 4, // Label: "Other (701)"
}
I run the proxy generator and I see the next code
import { mapEnumToOptions } from '@abp/ng.core';
export enum ContactType {
NotSelected = 0,
Administrative_Assistant = 1,
Medical_Director = 2,
Quality_Performance_Improvement_Specialist = 3,
Other = 4
}
export const contactTypeOptions = mapEnumToOptions(CustomDataType);
should i use
[Description("My label HERE")]
also checking that I should include something like this on my localization
{ "culture": "en", "texts": { "Enum:ContactType.NotSelected": "Label here", "Enum:ContactType.Administrative_Assistant": "Label here", "Enum:ContactType.Medical_Director": "Label here", "Enum:ContactType.Quality_Performance_Improvement_Specialist": "Label here", "Enum:ContactType.Other": "Label here", } }
could you provide me a documentation or example related to complete implementation of this feature?
I need to generate identity proxies for angular but I am facing problems on it, could you help me please?
I need to get a list of users if there is a different way to get it, i am open to hear
my environment file is:
import { Environment } from '@abp/ng.core';
const baseUrl = 'http://localhost:4201';
const oAuthConfig = {
issuer: 'https://localhost:44322',
redirectUri: baseUrl,
clientId: 'Project_Angular',
responseType: 'code',
scope:
'offline_access openid profile email phone AccountService IdentityService AdministrationService SaasService ProductService',
requireHttps: true,
};
export const environment = {
production: false,
application: {
baseUrl,
name: 'Project',
},
oAuthConfig,
apis: {
default: {
url: 'https://localhost:44388',
rootNamespace: 'Company.Project',
},
Identity: {
url: 'https://localhost:44388',
rootNamespace: 'Volo.Abp', // Also tried with Company.Project
},
},
} as Environment;
commands that I tried are:
abp generate-proxy -t ng -m AbpIdentity -u https://localhost:44388 --target identity-service
abp generate-proxy -t ng -m Identity -u https://localhost:44388 --target identity-service
abp generate-proxy -t ng -m IdentityService -u https://localhost:44388 --target identity-service
this is the message for all of them
[Invalid Module] Backend module "AbpIdentity" does not exist in API definition.
I need to create a global filter like IMultiTenant, based on a claim, do you have any documentation related to it?
I need to create the next structure on code
The table AbpUsers is on AbpIdentity Database The tables AgencyUser and Agency has to be on Agency Database I need to add the navigation property to the user to get some properties about the user
The documentation related to this case on FAQ are related on the same database, so the map and solutions do not work complete for me.
Current progress
Add reference to package: Volo.Abp.IdentityServer.Domain on Company.Project.AgencyService.EntityFrameworkCore and Company.Project.AgencyService.Domain
Entity Class
public class AgencyUser : FullAuditedTenantEntity<Guid>
{
// Foreign key referenceing the AbpUser
public Guid IdentityUserId { get; set; }
public IdentityUser IdentityUser { get; set; }
public Guid AgencyId { get; set; }
public Agency Agency { get; set; }
}
`
> Mapp
`
public class AgencyUserMap : IEntityTypeConfiguration<AgencyUser>
{
public void Configure(EntityTypeBuilder<AgencyUser> builder)
{
builder.ConfigureByConvention();
builder.ToTable("AgencyUser");
builder.HasKey(x => x.Id);
builder.Property(x => x.Id).ValueGeneratedOnAdd();
builder.HasOne< IdentityUser >().WithMany().HasForeignKey(x => x.IdentityUserId);
builder.HasOne< Agency >().WithMany().HasForeignKey(x => x.AgencyId);
builder.Navigation(x => x.IdentityUser).AutoInclude();
builder.Navigation(x => x.Agency).AutoInclude();
}
}
How may I use tag helper on angular?
I would like to implement a sub menu, using <router-outlet></router-outlet>, and reuse the component abp-sidebar, do you have documentation or any example that I can use to take a look?