Beispiel #1
0
        public override async Task <string?> Create(Post value, CancellationToken cancellationToken = default)
        {
            if (string.IsNullOrEmpty(value.Id))
            {
                value.Id = Guid.NewGuid().ToString();
            }
            PostMetadata metadata = new PostMetadata(value);
            string       result   = ObjectTextual.Format(metadata, value.Content.Raw);
            await File.WriteAllTextAsync(GetAbsolutePath(value.Id), result, System.Text.Encoding.UTF8, cancellationToken);

            return(value.Id);
        }
Beispiel #2
0
        public override async Task <bool> Update(Post value, CancellationToken cancellationToken = default)
        {
            if (string.IsNullOrEmpty(value.Id))
            {
                throw new Exception("No post id");
            }
            PostMetadata metadata = new PostMetadata(value);
            string       result   = ObjectTextual.Format(metadata, value.Content.Raw);
            await File.WriteAllTextAsync(GetAbsolutePath(value.Id), result, System.Text.Encoding.UTF8, cancellationToken);

            return(true);
        }
 public ArchiveItem(PostMetadata postMetadata) {
     Year = postMetadata.PublishDate.Year;
     Month = postMetadata.PublishDate.ToString("MMM");
 }
Beispiel #4
0
        public async Task<PostMetadata> GetPostMetadata(int rootPostId)
        {
            var key = rootPostId.ToString();
            var fields = new RedisValue[]
                             {
                                 "ViewsCount",
                                 "LastChangeTicks"
                             };

            RedisValue[] redisValues = await _redis.GetDatabase().HashGetAsync(key, fields);
            var metadata = new PostMetadata
                               {
                                   ViewsCount = long.Parse(redisValues[0]),
                                   LastChangeTicks = long.Parse(redisValues[1])
                               };
            return metadata;
        }