aboutsummaryrefslogtreecommitdiff
path: root/Timeline/Services
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2020-03-07 23:58:21 +0800
committercrupest <crupest@outlook.com>2020-03-07 23:58:21 +0800
commit540baa40d0d32d87fbba0ad351ff534fd43f2749 (patch)
treebe6364087386d56c00b1e482e656559edd60afd1 /Timeline/Services
parent6488df7d9e7b1c3cc9fbceb0fa25a9770988a7ca (diff)
downloadtimeline-540baa40d0d32d87fbba0ad351ff534fd43f2749.tar.gz
timeline-540baa40d0d32d87fbba0ad351ff534fd43f2749.tar.bz2
timeline-540baa40d0d32d87fbba0ad351ff534fd43f2749.zip
...
Diffstat (limited to 'Timeline/Services')
-rw-r--r--Timeline/Services/TimelineService.cs24
1 files changed, 23 insertions, 1 deletions
diff --git a/Timeline/Services/TimelineService.cs b/Timeline/Services/TimelineService.cs
index edd0a0ab..ff2532ea 100644
--- a/Timeline/Services/TimelineService.cs
+++ b/Timeline/Services/TimelineService.cs
@@ -432,10 +432,20 @@ namespace Timeline.Services
if (entity.Content != null) // otherwise it is deleted
{
var author = Mapper.Map<UserInfo>(await UserService.GetUserById(entity.AuthorId));
+
+ var type = entity.ContentType;
+
+ ITimelinePostContent content = type switch
+ {
+ TimelinePostContentTypes.Text => new TextTimelinePostContent(entity.Content),
+ TimelinePostContentTypes.Image => new ImageTimelinePostContent(entity.Content),
+ _ => throw new DatabaseCorruptedException(string.Format(CultureInfo.InvariantCulture, ExceptionDatabaseUnknownContentType, type))
+ };
+
posts.Add(new TimelinePostInfo
{
Id = entity.LocalId,
- Content = entity.Content,
+ Content = content,
Author = author,
Time = entity.Time,
LastUpdated = entity.LastUpdated
@@ -544,10 +554,22 @@ namespace Timeline.Services
if (post == null)
throw new TimelinePostNotExistException(id);
+ string? dataTag = null;
+
+ if (post.ContentType == TimelinePostContentTypes.Image)
+ {
+ dataTag = post.Content;
+ }
+
post.Content = null;
post.LastUpdated = Clock.GetCurrentTime();
await Database.SaveChangesAsync();
+
+ if (dataTag != null)
+ {
+ await DataManager.FreeEntry(dataTag);
+ }
}
public async Task ChangeProperty(string name, TimelinePatchRequest newProperties)