Why the 2 versions to support SPA and multi-page?
Thanks,
Also, I searched for the place where IAbpSession is hooked to ClaimsAbpSession and I couldn't find where you do this mapping.
Is this considered a conventional registration since their names are: IAbpSession and ClaimsAbpSession?
Also, would it be possible to comment on this thread with some guidance from you :-) #3111
Hi, In the documentation it mentions the following:
About IAbpSession IAbpSession interface must be implemented in order to get actual session informations. While you can implement it in your own way, it's fully implemented in module-zero project.
I cannot find that implementation in the module-zero project. There is only one implementation and it is the ClaimsAbpSession located in Abp project.
Is there anything missing? Thanks
Hi, I read the documentation and the order the different resolving contributors are checked for TenantId. Can you please guide me in the framework where in the code those resolvers are called and where the TenantId Claim is added to the list of claims?
Thanks
Hi, In one of the AppServices, I am seeing the following code generated. So which code is being called? Because I noticed that one of them uses $http and the other uses abp.ajax to perform the code.
And from debugging, I noticed the Factory is being used. But why generated the other one?
Thanks
var serviceNamespace = abp.utils.createNamespace(abp, 'services.app.personofConcern');
serviceNamespace.getPocs = function(input, ajaxParams) {
return abp.ajax($.extend({
url: abp.appPath + 'api/services/app/personofConcern/GetPocs',
type: 'POST',
data: JSON.stringify(input)
}, ajaxParams));
};
And,
(function (abp, angular) {
if (!angular) {
return;
}
var abpModule = angular.module('abp');
abpModule.factory('abp.services.app.personofConcern', [
'$http', function ($http) {
return new function () {
this.getPocs = function (input, httpParams) {
return $http(angular.extend({
url: abp.appPath + 'api/services/app/personofConcern/GetPocs',
method: 'POST',
data: JSON.stringify(input)
}, httpParams));
};
Yes this is the code inside custom repository.
I define a new interface in the .Core app. Then the implementation is inside .Entityframework project
Thanks I'll check the logic used in this case.
Hi Ismail, I ended up with this functional code, in case someone else needs it:
public async Task<DataTable> GetPocPivotQueueAsync(int? tenantId, string filter)
{
return await Task.Run(() =>
{
return GetPocPivotQueue(tenantId, filter);
});
}
public DataTable GetPocPivotQueue(int? tenantId, string filter)
{
// creates resulting Queue
var result = new DataTable();
SqlCommand cmd = null;
try
{
// prepare command
cmd = new SqlCommand("[dbo].[sp_GetPocInPivot]", (SqlConnection)this.Context.Database.Connection);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@TenantId", tenantId.HasValue ? tenantId.Value : (object)DBNull.Value);
cmd.Parameters.AddWithValue("@Filter", string.IsNullOrEmpty(filter) ? (object)DBNull.Value : filter);
// Use DataTables to extract the whole table in one hit
using (SqlDataAdapter da = new SqlDataAdapter(cmd))
{
// fill the datatable
da.Fill(result);
}
}
finally
{
if (cmd != null)
{
// close command
cmd.Dispose();
}
}
return result;
}
Oh that's great!
Can you point me to where is this implemented (Url)
Welcome :)