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 }); }
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()); }
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); }