If you are use nopCommerce than you need to two class for plugin.
- DbContext Class
- Plugin Class
MostViewObjectContext.cs
namespace Nop.Plugin.MostViewed
{
public class MostViewObjectContext: DbContext, IDbContext
{
public MostViewObjectContext(string nameOrConnectionString) : base(nameOrConnectionString) { }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
Database.SetInitializer<MostViewObjectContext>(null);
modelBuilder.Configurations.Add(new YourTableMappingClass());
}
public new IDbSet<TEntity> Set<TEntity>() where TEntity : BaseEntity
{
return base.Set<TEntity>();
}
public IList<TEntity> ExecuteStoredProcedureList<TEntity>(string commandText, params object[] parameters) where TEntity : BaseEntity, new()
{
throw new NotImplementedException();
}
public string CreateDatabaseScript()
{
return ((IObjectContextAdapter)this).ObjectContext.CreateDatabaseScript();
}
//Other all methods like Install() and Uninstall()
}
}
MostViewPlugin.cs
namespace Nop.Plugin.MostViewed
{
public class MostViewedPlugin : BasePlugin, IWidgetPlugin
{
// Write code for IList<string> GetWidgetZones(),GetConfigurationPageUrl(), GetPublicViewComponent(string widgetZone, out string viewComponentName), Install() and Uninstall()
}
}