Hi,
I have some problem with reading smtp settings (only for this).
With a logged user in a Tenant :
SettingManager.ChangeSettingForTenant(AbpSession.GetTenantId(), Abp.Net.Mail.EmailSettingNames.Smtp.Host, input.SmtpHost);
writes correctly in database:
Id CreationTime CreatorUserId LastModificationTime LastModifierUserId Name TenantId UserId Value 10154 2020-01-27 11:03:51.4605249 4 NULL NULL Abp.Net.Mail.Smtp.Host 2 NULL smtp.my.domain
But, when I read the same value with
SmtpHost = SettingManager.GetSettingValueForTenant(Abp.Net.Mail.EmailSettingNames.Smtp.Host, AbpSession.GetTenantId()),
and AbpSession.GetTenantId() return 2,
I obtain 127.0.0.1 the is the default value.
Every other my setting works fine. There is something I'm missing?
ANZ 7.1.0 with Angular and Core 2
Thank you
Hi, I'm using the extension Abp.EntityFrameworkCore.EFPlus. All works fine but I don't find how to set the BatchSize and BatchDelayInterval properties in delete methods.
Are they supported?
Thank you.
Hi, We are implementing a SignalR service that needs to write e read from database and is authenticated. There are some best practices to deal with database ? We are experiencing some "object disposed" exception accessing to database.
I've looked at your Chat module and I've seen then some time the UnitOfWork attribute is used but not always. Can you lead me on the correct way?
Thank you
Hi, I've differents optional modules loaded as plugin (plugins directorty), Some of these has SignalR feature.
Every installation can have zero, one or all modules, so I can't register in advanced on startup class.
How can I register on demand signalr routes like routes.MapHub<MyChatHub>("/signalr-myChatHub"); // Prefix with '/signalr'
?
Thank you.
Hi, I wuold like to add the UI interface for Quartz. I'm using 7.1 version (Core + Angular).
This is the repository Crtystal Quartz UI
In the startup method who can I have a reference to the scheduler like explained in documentation ?
using CrystalQuartz.AspNetCore;
// ...
/*
* app is IAppBuilder
* scheduler is your IScheduler (local or remote)
*/
app.UseCrystalQuartz(() => scheduler);
Can you help me? Thank you
Hi,
I've upgraded from 6.9.1 to 7.1.0.
The new option added to SwaggerGen in startup causes a duplicate key error:
options.OperationFilter<SwaggerOperationFilter>();
System.ArgumentException: An item with the same key has already been added. Key: x-schema
at System.Collections.Generic.Dictionary2.TryInsert(TKey key, TValue value, InsertionBehavior behavior) at System.Collections.Generic.Dictionary
2.Add(TKey key, TValue value)
at Uno.Framework.Web.Swagger.SwaggerOperationFilter.Apply(Operation operation, OperationFilterContext context) in C:\Uno\Git\uno-ins\framework\src\Uno.Framework.Web.Core\Swagger\SwaggerOperationFilter.cs:line 32
at Swashbuckle.AspNetCore.SwaggerGen.SwaggerGenerator.CreateOperation(ApiDescription apiDescription, ISchemaRegistry schemaRegistry)...
Removed the new option all works fine. What is the purpose of this new code?
This is my full configuration for swagger:
services.AddSwaggerGen(options =>
{
options.SwaggerDoc("v1", new Info { Title = "Framework API", Version = "v1" });
options.DocInclusionPredicate((docName, description) => true);
options.UseReferencedDefinitionsForEnums();
options.ParameterFilter<SwaggerEnumParameterFilter>();
options.SchemaFilter<SwaggerEnumSchemaFilter>();
options.OperationFilter<SwaggerOperationIdFilter>();
//SOFTWAREUNO - Questo filtro causa un errore di duplicazione di chiave
//options.OperationFilter<SwaggerOperationFilter>();
options.CustomDefaultSchemaIdSelector();
//Note: This is just for showing Authorize button on the UI.
//Authorize button's behaviour is handled in wwwroot/swagger/ui/index.html
options.AddSecurityDefinition("Bearer", new BasicAuthScheme());
//SOFTWAREUNO
options.OrderActionsBy(o => o.RelativePath);
options.CustomSchemaIds(o => o.FullName);
foreach (var file in Directory.GetFiles(_hostingEnvironment.ContentRootPath, "*.docs.xml", SearchOption.AllDirectories))
{
options.IncludeXmlComments(file);
}
options.DescribeAllEnumsAsStrings();
});
Thank you Ivano
Hi, we would like to share an issue when you have multiple dbcontext and you want to join tables owned by two different context. Is not simple to explain so we have done a poc to better understand.
Scenario: Multiple DB Context referencing same table
ContextA
DbSet<MyTableA>
DbSet<MyTableB>
ContextB
DbSet<MyTableC>
DbSet<MyTableA>
In ContextB
IRepository<MyTableC> TableC
IRepository<MyTableA> MyTableA
Join TableC on TableA <- Error Null reference for TableA because in registered only in ContextA
Problem The table is registered only on the first context discovered and when an other context requires access to the same table, his context is missing the table. You can't join table owned by two different contexts, also if you registrer the dbset in both of them.
Desired behaviour Register the dbset in both context
Workaround Register a DbSet using an empty class that extends the firts DbSet.
You can find the code to download here
Thank you
Hi, In the previous version of the forum I was able to subscribe to all posts and see all the questions and answers (divided by threads). It was very usefull for me, to better understand issues but also learn new features and stay up to date. Is it possible to restore the same functionality?
Thank you Ivano
Hi, I've upgraded our solution from 5.6.2 to 6.9.1. Just one think unresolved: Where can I find the property "LastLoginTime" dropped in version 4.2.0 of Abp from AbpUsers table?
Thank you. Ivano
Hi, we have a big solution with houndred of IRepository. The startup time after an application pool reset takes about 1 second for each repository. We have splitted in small application services and entity framework core contexts, but there isn't an effective improvement. Now the startup time is about 30 seconds and is growing as our application grows up.
Debugging the solution we have noted that the dependency resolution is where the most of the time is consumed.
This is an example of our repository to resolve a client request for a detailed dto. This takes about 10 seconds to resolve dependency (only the first time). Imagine that the client makes at the same time another request for a different dto with many repository, the response arrives after 20 seconds.
Have you some guide line to deal with a very huge application? Thank you
` public class RisorseQueryService : IRisorseQueryService { private readonly IRepository
public RisorseQueryService(
IRepository<RisorsaMaterialeReferenceData> risorsaMaterialeRepository,
IRepository<TipologiaRisorsaMaterialeReferenceData> tipologiaRisorsaMaterialeRepository,
IRepository<UbicazioneReferenceData> ubicazioneRepository,
IRepository<RisorsaMaterialeCentroRicavoReferenceData> risorsaMaterialeCentroRicavoRepository,
IRepository<CentroRicavoReferenceData> centroRicavoRepository,
IRepository<RisorsaMaterialeUnitaLavoroReferenceData> risorsaMaterialeUnitaLavoroRepository,
IRepository<RisorsaMaterialeUnitaOffertaReferenceData> risorsaMaterialeUnitaOffertaRepository,
IRepository<PostoClasseConfortReferenceData> postoClasseConfortRepository,
IRepository<ClasseConfortReferenceData> classeComfortRepository,
IRepository<PostoProfilazioneReferenceData> postoProfilazioneRepository,
IRepository<ProfilazioneUtenteViewReferenceData> profilazioneUtenteViewRepository,
IRepository<WorkspaceData, long> workspaceRepository)
{
`
Asp.Net Zero 5.6.0