Exemplo n.º 1
0
 RawItemMutation ToItemMutation(ItemMetadataMutation mutation)
 {
     return(new RawItemMutation
     {
         AccessTime = mutation.AccessTime,
         Attachments = mutation.Attachments,
         CreationTime = mutation.CreationTime,
         Domain = DomainName,
         Id = mutation.Id,
         ModificationTime = mutation.ModificationTime,
         Remarks = mutation.Remarks
     });
 }
Exemplo n.º 2
0
        public async Task <ItemMetadata> AddMetadata(ItemMetadataMutation value)
        {
            value = value with
            {
                Category = value.Category ?? DefaultCategoryName
            };
            var mutation = ToItemMutation(value);

            var(category, tags) = await PrepareCategoryAndTag(value.Category, value.Tags);

            var item = await Service.AddItem(mutation with
            {
                CategoryId = category?.Id,
                TagIds     = tags?.Select(x => x.Id !).ToArray(),
            });

            return(item.AsMetadata());
        }
Exemplo n.º 3
0
        public async Task <ItemMetadata?> UpdateMetadata(ItemMetadataMutation value)
        {
            var entity = await GetItem(value.Id);

            if (entity is not null)
            {
                var(oldCategory, oldTags) = (entity.Category?.Name, entity.Tags?.Select(x => x.Name !).ToArray());
                var mutation = ToItemMutation(value);
                var(category, tags) = await PrepareCategoryAndTag(value.Category, value.Tags);

                var item = await Service.UpdateItem(mutation with
                {
                    CategoryId = category?.Id,
                    TagIds     = tags?.Select(x => x.Id !).ToArray(),
                });
                await CleanCategoryAndTag(oldCategory, oldTags);

                return(item?.AsMetadata());
            }
            return(null);
        }