示例#1
0
        public async Task <IActionResult> PostUpsertAsset(string app, DomainId id, [FromQuery] DomainId?parentId, IFormFile file)
        {
            var assetFile = await CheckAssetFileAsync(file);

            var command = new UpsertAsset {
                File = assetFile, ParentId = parentId, AssetId = id
            };

            var response = await InvokeCommandAsync(command);

            return(Ok(response));
        }
示例#2
0
        public static UpsertAsset ToCommand(AssetTusFile file)
        {
            var command = new UpsertAsset {
                File = file
            };

            bool TryGetString(string key, out string result)
            {
                result = null !;

                var value = file.Metadata.FirstOrDefault(x => string.Equals(x.Key, key, StringComparison.OrdinalIgnoreCase)).Value;

                if (!string.IsNullOrWhiteSpace(value))
                {
                    result = value;
                    return(true);
                }

                return(false);
            }

            if (TryGetString("id", out var id))
            {
                command.AssetId = DomainId.Create(id);
            }

            if (TryGetString("parentId", out var parentId))
            {
                command.ParentId = DomainId.Create(parentId);
            }

            if (TryGetString("duplicate", out var duplicate) && bool.TryParse(duplicate, out var parsed))
            {
                command.Duplicate = parsed;
            }

            return(command);
        }