Если в классе OrderTime создам конструктор c базой, то метод Execute перестает работать. Кто знает как решить эту проблему? Может можно реализовать это как то по другому. В интернете я не смог найти решение. Помогите пожалуйста.
Класс OrderTime
public class OrderTime : IJob
{
AppDBContent appDBContent;
public OrderTime(AppDBContent appDBContent)
{
this.appDBContent = appDBContent;
}
public async Task Execute(IJobExecutionContext context)
{
var order = appDBContent.Order.FirstOrDefault(e => e.Id == 52);
if (order != null)
{
order.Mail = "admin";
}
appDBContent.Order.Update(order);
appDBContent.SaveChanges();
}
}
Класс базы данных AppDBContent
public class AppDBContent : IdentityDbContext<User>
{
public AppDBContent(DbContextOptions<AppDBContent> options) : base(options)
{
//Database.EnsureCreated();
}
public override DbSet<User> Users { get; set; }
public DbSet<Book> Book { get; set; }
public DbSet<Сategories> Categories { get; set; }
public DbSet<BookItems> LibraryBookItem { get; set; }
public DbSet<Order> Order { get; set; }
public DbSet<OrderDetail> OrderDetail { get; set; }
}
Проблему с созданием Job
у которой нет дефолтного конструктора, а есть некая зависимость, например на DbContext
, можно решить при помощи пакета: Quartz.Extensions.DependencyInjection
, если вы используете встроенный контейнер в ASP.NET Core
.
В Startup.cs
нужно будет добавить, примерно такой код:
services.AddQuartz(q =>
{
// при помощи этого метода Job резолвится через контейнер,
// а не создаваться через встроенную фабрику Quartz,
// которая требует пустой конструктор
q.UseMicrosoftDependencyInjectionScopedJobFactory();
q.AddJob<OrderTime>(options =>
{
options.WithIdentity("trigger1", "group1")
.Build();
});
q.AddTrigger(options =>
{
options.ForJob("trigger1", "group1")
.StartNow()
.WithSimpleSchedule(x =>
x.WithIntervalInSeconds(2)
.RepeatForever());
});
});
services.AddQuartzServer(options =>
{
options.WaitForJobsToComplete = true;
});
Документация
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Доброе время суток, Хотел создать Бота для телеграмма, но подключение к боту не происходитВот сообственно код
Visual Studio выдает ошибку Exception: SystemException: и пишет что ошибка в 1 строке, а на первой строке у меня using System
Есть datagridviewВ последних колонках DataGridViewButtonColumn