Skip to content

Commit 275aea4

Browse files
author
Jicheng Lu
committed
sync cron
1 parent 7387208 commit 275aea4

File tree

6 files changed

+35
-13
lines changed

6 files changed

+35
-13
lines changed

src/Infrastructure/BotSharp.Abstraction/Crontab/Models/CrontabItemFilter.cs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,6 @@ public class CrontabItemFilter : Pagination
1111
[JsonPropertyName("conversation_ids")]
1212
public IEnumerable<string>? ConversationIds { get; set; }
1313

14-
[JsonPropertyName("titles")]
15-
public IEnumerable<string>? Titles { get; set; }
16-
1714
public CrontabItemFilter()
1815
{
1916

src/Infrastructure/BotSharp.Abstraction/Crontab/Models/ScheduleTaskArgs.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ public class ScheduleTaskArgs
1212
public string Description { get; set; } = null!;
1313

1414
[JsonPropertyName("to_do_list")]
15-
public ScheduleTaskItemArgs[] Tasks { get; set; } = null!;
15+
public ScheduleTaskItemArgs[] Tasks { get; set; } = [];
1616
}
1717

1818
public class ScheduleTaskItemArgs

src/Infrastructure/BotSharp.Core/Repository/FileRepository/FileRepository.Crontab.cs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public bool InsertCrontabItem(CrontabItem cron)
2121
}
2222

2323
var cronFile = Path.Combine(baseDir, CRON_FILE);
24-
var json = JsonSerializer.Serialize(cronFile, _options);
24+
var json = JsonSerializer.Serialize(cron, _options);
2525
File.WriteAllText(cronFile, json);
2626
return true;
2727
}
@@ -72,10 +72,6 @@ public PagedItems<CrontabItem> GetCrontabItems(CrontabItemFilter filter)
7272
{
7373
matched = matched && filter.UserIds.Contains(record.UserId);
7474
}
75-
if (filter?.Titles != null)
76-
{
77-
matched = matched && filter.Titles.Contains(record.Title);
78-
}
7975

8076
if (!matched) continue;
8177

src/Plugins/BotSharp.Plugin.MongoStorage/Collections/CrontabItemDocument.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ public class CrontabItemDocument : MongoBase
1111
public string Cron { get; set; }
1212
public string Title { get; set; }
1313
public string Description { get; set; }
14+
public IEnumerable<CronTaskMongoElement> Tasks { get; set; } = [];
1415
public DateTime CreatedTime { get; set; } = DateTime.UtcNow;
1516

1617
public static CrontabItem ToDomainModel(CrontabItemDocument item)
@@ -24,6 +25,7 @@ public static CrontabItem ToDomainModel(CrontabItemDocument item)
2425
Cron = item.Cron,
2526
Title = item.Title,
2627
Description = item.Description,
28+
Tasks = item.Tasks?.Select(x => CronTaskMongoElement.ToDomainElement(x))?.ToArray() ?? [],
2729
CreatedTime = item.CreatedTime
2830
};
2931
}
@@ -39,6 +41,7 @@ public static CrontabItemDocument ToMongoModel(CrontabItem item)
3941
Cron = item.Cron,
4042
Title = item.Title,
4143
Description = item.Description,
44+
Tasks = item.Tasks?.Select(x => CronTaskMongoElement.ToMongoElement(x))?.ToList() ?? [],
4245
CreatedTime = item.CreatedTime
4346
};
4447
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
using BotSharp.Abstraction.Crontab.Models;
2+
3+
namespace BotSharp.Plugin.MongoStorage.Models;
4+
5+
public class CronTaskMongoElement
6+
{
7+
public string Topic { get; set; }
8+
public string Script { get; set; }
9+
public string Language { get; set; }
10+
11+
public static CronTaskMongoElement ToMongoElement(ScheduleTaskItemArgs model)
12+
{
13+
return new CronTaskMongoElement
14+
{
15+
Topic = model.Topic,
16+
Script = model.Script,
17+
Language = model.Language
18+
};
19+
}
20+
21+
public static ScheduleTaskItemArgs ToDomainElement(CronTaskMongoElement model)
22+
{
23+
return new ScheduleTaskItemArgs
24+
{
25+
Topic = model.Topic,
26+
Script = model.Script,
27+
Language = model.Language
28+
};
29+
}
30+
}

src/Plugins/BotSharp.Plugin.MongoStorage/Repository/MongoRepository.Crontab.cs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,6 @@ public PagedItems<CrontabItem> GetCrontabItems(CrontabItemFilter filter)
4646
{
4747
cronFilters.Add(cronBuilder.In(x => x.ConversationId, filter.ConversationIds));
4848
}
49-
if (filter?.Titles != null)
50-
{
51-
cronFilters.Add(cronBuilder.In(x => x.Title, filter.Titles));
52-
}
5349
if (filter?.UserIds != null)
5450
{
5551
cronFilters.Add(cronBuilder.In(x => x.UserId, filter.UserIds));

0 commit comments

Comments
 (0)