hi
You should always persist the key to the database or redis, etc. If you use redis, make sure that the key is not cleared;
https://docs.identityserver.io/en/latest/topics/startup.html#key-material https://docs.microsoft.com/en-us/aspnet/core/security/data-protection/configuration/overview?view=aspnetcore-5.0
hi
Try to add format: abp.localization.currentCulture.dateTimeFormat.shortDatePattern
$dateRangePicker.datepicker({
autoclose: true,
language: abp.localization.currentCulture.cultureName,
format: abp.localization.currentCulture.dateTimeFormat.shortDatePattern
});
The value 'invite' is not valid for id The value 'send-email-user' is not valid for id
There is a problem with your request parameters. Can you share full logs?
hi
Yes, Can you try?
hi
It is not supported by default, you can add new methods to implement it, you can check the corresponding documentation for details.
https://docs.microsoft.com/en-us/dotnet/api/system.net.mail.mailmessage.attachments?view=net-5.0
http://www.mimekit.net/docs/html/Creating-Messages.htm
hi
The AuthenticationStateProvider
is service of Blazor Server not of abp.
https://github.com/dotnet/aspnetcore/blob/release/5.0/src/Components/Server/src/DependencyInjection/ComponentServiceCollectionExtensions.cs#L80
You can inject it directly instead of creating a subclass of it.
return await Task.Run(() => _activeUsers.Values.ToList());
Use return Task.FromResult(_activeUsers.Values.ToList());
insteadof Task.Run
hi
Are you enable WebSockets
of IIS?
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/websockets?view=aspnetcore-5.0#iisiis-express-support
hi
You are call async method in sync method. Can be replace by AsyncHelper.RunSync
https://github.com/abpframework/abp/blob/48c52625f4c4df007f04d5ac6368b07411aa7521/framework/src/Volo.Abp.BackgroundWorkers/Volo/Abp/BackgroundWorkers/AbpBackgroundWorkersModule.cs#L18
You can try to read the setting to see if it takes effect. https://docs.abp.io/en/abp/latest/Settings#setting-value-providers
https://github.com/abpframework/abp-samples/tree/master/EmailSendDemo
hi
Please check the commit of init2.
https://github.com/maliming/CATOSTest/commits/main
https://github.com/maliming/CATOSTest/invitations
hi
Can you try below:
[RemoteService(Name = FormsRemoteServiceConsts.RemoteServiceName)]
[Area("form")]
[ControllerName("Form")]
[Route("api/forms")]
[Authorize(FormsPermissions.Forms.Default)]
public class MyFormController : AbpControllerBase, IFormAppService
{
protected IFormAppService FormAppService { get; }
public MyFormController(IFormAppService formAppService)
{
FormAppService = formAppService;
LocalizationResource = typeof(FormsResource);
}
[HttpGet]
public virtual Task<PagedResultDto<FormDto>> GetListAsync(GetFormListInputDto input)
{
return FormAppService.GetListAsync(input);
}
[HttpGet]
[Route("{id}/responses")]
public Task<PagedResultDto<FormResponseDetailedDto>> GetResponsesAsync(Guid id, GetResponseListInputDto input)
{
return FormAppService.GetResponsesAsync(id, input);
}
[HttpGet]
[Route("{id}/download-responses-csv")]
public Task<IRemoteStreamContent> GetCsvResponsesAsync(Guid id, GetResponseListInputDto input)
{
return FormAppService.GetCsvResponsesAsync(id, input);
}
[HttpGet]
[Route("{id}/responses-count")]
public Task<long> GetResponsesCountAsync(Guid id)
{
return FormAppService.GetResponsesCountAsync(id);
}
[HttpDelete]
[Route("{id}/responses")]
public Task DeleteAllResponsesOfFormAsync(Guid id)
{
return FormAppService.DeleteAllResponsesOfFormAsync(id);
}
[HttpPost]
[Route("/invite")]
public Task SendInviteEmailAsync(FormInviteEmailInputDto input)
{
return FormAppService.SendInviteEmailAsync(input);
}
[HttpPost]
public virtual Task<FormDto> CreateAsync(CreateFormDto input)
{
return FormAppService.CreateAsync(input);
}
[AllowAnonymous]
[HttpGet]
[Route("{id}")]
public virtual Task<FormWithDetailsDto> GetAsync(Guid id)
{
return FormAppService.GetAsync(id);
}
[HttpPut]
[Route("{id}")]
public virtual Task<FormDto> UpdateAsync(Guid id, UpdateFormDto input)
{
return FormAppService.UpdateAsync(id, input);
}
[HttpPut]
[Route("{id}/settings")]
public virtual Task SetSettingsAsync(Guid id, UpdateFormSettingInputDto input)
{
return FormAppService.SetSettingsAsync(id, input);
}
[HttpGet]
[Route("{id}/settings")]
public virtual Task<FormSettingsDto> GetSettingsAsync(Guid id)
{
return FormAppService.GetSettingsAsync(id);
}
[AllowAnonymous]
[HttpGet]
[Route("{id}/questions")]
public virtual Task<List<QuestionDto>> GetQuestionsAsync(Guid id, GetQuestionListDto input)
{
return FormAppService.GetQuestionsAsync(id, input);
}
[HttpPost]
[Route("{id}/questions")]
public virtual Task<QuestionDto> CreateQuestionAsync(Guid id, CreateQuestionDto input)
{
return FormAppService.CreateQuestionAsync(id, input);
}
[HttpDelete]
[Route("{id}")]
public virtual Task DeleteAsync(Guid id)
{
return FormAppService.DeleteAsync(id);
}
}
public class MyServiceConvention : IApplicationModelConvention
{
public virtual void Apply(ApplicationModel application)
{
application.Controllers.RemoveAll(x => x.ControllerType == typeof(Volo.Forms.Forms.FormController));
}
}
public override void ConfigureServices(ServiceConfigurationContext context)
{
var hostingEnvironment = context.Services.GetHostingEnvironment();
var configuration = context.Services.GetConfiguration();
Configure<MvcOptions>(mvcOptions =>
{
mvcOptions.Conventions.Add(new MyServiceConvention());
});
}