DailyTask.cs 994 B

12345678910111213141516171819202122232425262728293031323334
  1. using System.Collections.Generic;
  2. using System.Threading.Tasks;
  3. using System.Timers;
  4. using CardCollector.DailyTasks.CustomTasks;
  5. using CardCollector.DataBase.EntityDao;
  6. namespace CardCollector.DailyTasks
  7. {
  8. public enum DailyTaskKeys
  9. {
  10. SendStickersToUsers = 1,
  11. }
  12. public abstract class DailyTask
  13. {
  14. public static Dictionary<DailyTaskKeys, DailyTask> List = new()
  15. {
  16. {DailyTaskKeys.SendStickersToUsers, new SendStickers()}
  17. };
  18. public abstract int Id { get; }
  19. public abstract int Goal { get; }
  20. public abstract string Title { get; }
  21. public abstract string Description { get; }
  22. public abstract Task<bool> Execute(long userId, object[] args = null);
  23. public static async void ResetTasks(object o, ElapsedEventArgs e)
  24. {
  25. await foreach (var item in DailyTaskDao.GetAll())
  26. item.Progress = List[(DailyTaskKeys) item.TaskId].Goal;
  27. }
  28. }
  29. }