diff options
author | crupest <crupest@outlook.com> | 2020-02-29 19:39:22 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-02-29 19:39:22 +0800 |
commit | 3f5b4840ff863bed5fd11beb775d02447f022030 (patch) | |
tree | b4f26809215caf4fc31be5a097819f5ad2f2a9d3 /Timeline/Services/TimelineService.cs | |
parent | b6b6c3089d42adc3d39aeb5efcbce7bdef09b3cb (diff) | |
parent | 3025536a7901da556bc5e3fba7a77064b54796c0 (diff) | |
download | timeline-3f5b4840ff863bed5fd11beb775d02447f022030.tar.gz timeline-3f5b4840ff863bed5fd11beb775d02447f022030.tar.bz2 timeline-3f5b4840ff863bed5fd11beb775d02447f022030.zip |
Merge pull request #67 from crupest/post-local-id
Make posts use local id.
Diffstat (limited to 'Timeline/Services/TimelineService.cs')
-rw-r--r-- | Timeline/Services/TimelineService.cs | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/Timeline/Services/TimelineService.cs b/Timeline/Services/TimelineService.cs index f12a7fcc..379ec8f5 100644 --- a/Timeline/Services/TimelineService.cs +++ b/Timeline/Services/TimelineService.cs @@ -309,6 +309,7 @@ namespace Timeline.Services {
return new TimelineEntity
{
+ CurrentPostLocalId = 0,
Name = name,
OwnerId = owner,
Visibility = TimelineVisibility.Register,
@@ -386,7 +387,7 @@ namespace Timeline.Services var author = Mapper.Map<UserInfo>(await UserService.GetUserById(entity.AuthorId));
posts.Add(new TimelinePostInfo
{
- Id = entity.Id,
+ Id = entity.LocalId,
Content = entity.Content,
Author = author,
Time = entity.Time,
@@ -405,13 +406,18 @@ namespace Timeline.Services throw new ArgumentNullException(nameof(content));
var timelineId = await FindTimelineId(name);
+ var timelineEntity = await Database.Timelines.Where(t => t.Id == timelineId).SingleAsync();
+
var author = Mapper.Map<UserInfo>(await UserService.GetUserById(authorId));
var currentTime = Clock.GetCurrentTime();
var finalTime = time ?? currentTime;
+ timelineEntity.CurrentPostLocalId += 1;
+
var postEntity = new TimelinePostEntity
{
+ LocalId = timelineEntity.CurrentPostLocalId,
Content = content,
AuthorId = authorId,
TimelineId = timelineId,
@@ -423,7 +429,7 @@ namespace Timeline.Services return new TimelinePostInfo
{
- Id = postEntity.Id,
+ Id = postEntity.LocalId,
Content = content,
Author = author,
Time = finalTime,
@@ -436,10 +442,9 @@ namespace Timeline.Services if (name == null)
throw new ArgumentNullException(nameof(name));
- // Currently we don't use the result. But we need to check the timeline.
- var _ = await FindTimelineId(name);
+ var timelineId = await FindTimelineId(name);
- var post = await Database.TimelinePosts.Where(p => p.Id == id).SingleOrDefaultAsync();
+ var post = await Database.TimelinePosts.Where(p => p.TimelineId == timelineId && p.LocalId == id).SingleOrDefaultAsync();
if (post == null)
throw new TimelinePostNotExistException(id);
|