private static bool TryParseUploadedFileMetadata( IFormFile file, string rawFileType, string rawImageSize, out IUploadedFileMetadata uploadedFileMetadata, out string error) { uploadedFileMetadata = null; error = null; if (string.IsNullOrEmpty(rawFileType)) { uploadedFileMetadata = new GenericUploadedFileMetadata(file.FileName, file.ContentType, file.Length); return(true); } if (!Enum.TryParse <FileType>(rawFileType, true, out var fileType)) { error = $"Cannot parse '{Http.HeaderNames.AmsFileType}' header value '{fileType}'"; return(false); } switch (fileType) { case FileType.SizeSpecificBitmapImage: if (!ImageSize.TryParse(rawImageSize, out var imageSize)) { error = $"Cannot parse '{Http.HeaderNames.AmsImageSize}' header value '{rawImageSize}'"; return(false); } uploadedFileMetadata = new UploadedImageMetadata(file.FileName, file.ContentType, file.Length, imageSize); return(true); default: error = $"Unexpected '{Http.HeaderNames.AmsFileType}' header value '{fileType}'"; return(false); } }