We're in the process of upgrading our project from ASP.NET Zero 8 to 12.1, which involves transitioning from Metronic V6 to V8. Previously, in Metronic V6, Summernote functioned smoothly. However, with its removal in Metronic V8, we've integrated Summernote from their official website. While it functions well on our main pages, we've encountered an issue where it doesn't work within modal or partial pages.
We are using ASP.NET Zero 12.1 (Metronic V8) for our web platform. Currently, we are tasked with a new requirement: to dynamically adjust the favicon and page title based on the tenant context. Project Type: ASP .NET Core + jQuery.
Thanks
Hi Team,
We have upgraded datatables version 1.10.13 to 2.0.0 in project because the identified library jquery.datatables, version 1.10.13 is vulnerable.
So, now we are getting error in application and datatables is not getting load on any page.
Please find below the attached doc for reference :
So, please suggest how we can upgrade the datatables in project without getting any issue.
We are upgrading our project from ASP.NET Zero 8 to 12.1 (Metronic V6 to V8). Currently, we are encountering issues with the main header menu. Upon increasing the number of menu items in the list, some items have become invisible, and the scrollbar is not visible to check the bottom menu items. Project Type: ASP .NET Core + jQuery.
Thanks
Currently our application is a multi tenant with single host database. But now we are switching to multi database i.e. tenant specific database. We use stored procedures, user defined functions, triggers, and so on in sql for our application.
I there a way I can manage this scripts for tenant database, so that I don't need do it manually in sql each time I create a new tenant. Also how can I maintain that for all tenant database whenever I create a new procedure.
Currently our application is a multi tenant with single host database. But now we are switching to multi database i.e. tenant specific database. We were using stored procedures to perform task. I have a StoredProcedureCalling.cs class. So my doubt is, what changes are required to be made in my StoredProcedureCalling.cs for multi-database so that during execution it will use the tenant specific database.
Below is the definition of StoredProcedureCalling.cs
using Abp.Data; using Abp.EntityFrameworkCore; using Microsoft.Data.SqlClient; using System.Data; using System.Data.Common; using CDP.EntityFrameworkCore.Repositories; using CDP.EntityFrameworkCore; using Microsoft.EntityFrameworkCore; using Abp.Domain.Entities; using System.Threading.Tasks;
namespace CDP.StoredProcedures { public class StoredProcedureCalling<TEntity, TPrimaryKey> : CDPRepositoryBase<TEntity, TPrimaryKey>, IStoredProcedureCalling<TEntity, TPrimaryKey> where TEntity : class, IEntity<TPrimaryKey> { private readonly IActiveTransactionProvider _transactionProvider;
public StoredProcedureCalling(IDbContextProvider<CDPDbContext> dbContextProvider, IActiveTransactionProvider transactionProvider)
: base(dbContextProvider)
{
_transactionProvider = transactionProvider;
}
public DbCommand CreateCommand(string commandText, CommandType commandType, params SqlParameter[] parameters)
{
var command = Context.Database.GetDbConnection().CreateCommand();
command.CommandText = commandText;
command.CommandType = commandType;
command.Transaction = GetActiveTransaction();
foreach (var parameter in parameters)
{
command.Parameters.Add(parameter);
}
return command;
}
public void EnsureConnectionOpen()
{
var connection = Context.Database.GetDbConnection();
if (connection.State != ConnectionState.Open)
{
connection.Open();
}
}
public DbTransaction GetActiveTransaction()
{
return (DbTransaction)_transactionProvider.GetActiveTransaction(new ActiveTransactionProviderArgs
{
{"ContextType", typeof(CDPDbContext) },
{"MultiTenancySide", MultiTenancySide }
});
}
}
}
And I have ActionItemAppService where I am calling the procedure
public class ActionItemsAppService : CDPAppServiceBase, IActionItemsAppService { private readonly IStoredProcedureCalling<Tenant, int> _storedProcedureCalling; public ActionItemsAppService(IDbContextProvider<CDPDbContext> dbContextProvider,IActiveTransactionProvider transactionProvider) { _storedProcedureCalling = new StoredProcedureCalling<Tenant, int>(dbContextProvider, transactionProvider); }
public async Task<List<GetActionItemsForViewDto>> GetAllActionItemsList(GetAllActionItemsInput input)
{
List<GetActionItemsForViewDto> ActionItemList = new List<GetActionItemsForViewDto>();
_storedProcedureCalling.EnsureConnectionOpen();
List<IDataRecord> outputPostDataReader = new List<IDataRecord>();
SqlParameter[] parameters = new SqlParameter[]
{
new SqlParameter(){ Direction=ParameterDirection.Input, SqlDbType =SqlDbType.BigInt,ParameterName="@TenantID",Value=AbpSession.TenantId},
};
try
{
using (var command = _storedProcedureCalling.CreateCommand("GetAllActionItems", CommandType.StoredProcedure, parameters))
{
using (var dataReader = await command.ExecuteReaderAsync())
{
if (dataReader.HasRows)
{
outputPostDataReader = dataReader.Cast<IDataRecord>().ToList();
}
}
foreach (var user in outputPostDataReader)
{
var ActionItem = new GetActionItemsForViewDto
{
Id = user.GetInt64(user.GetOrdinal("Id")),
Title = user.GetString(user.GetOrdinal("Title")),
};
ActionItemList.Add(ActionItem);
}
}
}
catch (Exception ex)
{
throw new UserFriendlyException(ex.Message + " " + ex.StackTrace);
}
return ActionItemList;
}
}