コード例 #1
0
        public async Task <RawItemMetadata> AddItem(RawItemMutation value)
        {
            if (value.CategoryId is null)
            {
                throw new NullReferenceException("Category can't be null");
            }

            var category = DbContext.Categories.Find(value.CategoryId);
            var item     = new RawItemMetadata
            {
                Id               = value.Id ?? Guid.NewGuid().ToString(),
                AccessTime       = value.AccessTime ?? DateTimeOffset.Now,
                ModificationTime = value.ModificationTime ?? DateTimeOffset.Now,
                CreationTime     = value.CreationTime ?? DateTimeOffset.Now,
                Domain           = value.Domain ?? "",
                Remarks          = value.Remarks ?? "",
                Attachments      = value.Attachments ?? "",
                Category         = category,
            };

            if (value.TagIds is not null)
            {
                item.Tags = value.TagIds.Select(id => DbContext.Tags.Find(id)).ToList();
            }
            DbContext.Items.Add(item);
            await DbContext.SaveChangesAsync();

            await ReloadItem(item);

            return(item);
        }
コード例 #2
0
        public async Task <RawItemMetadata?> UpdateItem(RawItemMutation value)
        {
            var item = await GetItem(value.Id);

            if (item is not null)
            {
                if (value.Domain is not null)
                {
                    item.Domain = value.Domain;
                }
                if (value.AccessTime is not null)
                {
                    item.AccessTime = value.AccessTime.Value;
                }
                if (value.ModificationTime is not null)
                {
                    item.ModificationTime = value.ModificationTime.Value;
                }
                if (value.CreationTime is not null)
                {
                    item.CreationTime = value.CreationTime.Value;
                }
                if (value.Remarks is not null)
                {
                    item.Remarks = value.Remarks;
                }
                if (value.Attachments is not null)
                {
                    item.Attachments = value.Attachments;
                }
                if (value.CategoryId is not null)
                {
                    var category = DbContext.Categories.Find(value.CategoryId);
                    item.Category = category;
                }
                if (value.TagIds is not null)
                {
                    item.Tags = value.TagIds.Select(id => DbContext.Tags.Find(id)).ToList();
                }
                await DbContext.SaveChangesAsync();

                await ReloadItem(item);
            }
            return(item);
        }
コード例 #3
0
ファイル: ModuleMutation.cs プロジェクト: StardustDL/delights
 public async Task <RawItemMetadata?> UpdateItem(RawItemMutation mutation, [Service] ItemMetadataServer.ModuleService service)
 {
     return(await service.UpdateItem(mutation));
 }