public async Task <IActionResult> Post()
        {
            if (!IsMultipartContentType(Request.ContentType))
            {
                return(BadRequest($"Expected a multipart request, but got {Request.ContentType}"));
            }

            var boundary = GetBoundary(MediaTypeHeaderValue.Parse(Request.ContentType));
            var reader   = new MultipartReader(boundary, HttpContext.Request.Body);
            var section  = await reader.ReadNextSectionAsync();

            if (section == null)
            {
                return(BadRequest($"Expecting 1 multipart section."));
            }

            if (!ContentDispositionHeaderValue.TryParse(section.ContentDisposition, out var contentDisposition))
            {
                return(BadRequest($"ContentDisposition has a wrong value '{section.ContentDisposition}'"));
            }

            if (StringSegment.IsNullOrEmpty(contentDisposition.FileName))
            {
                return(BadRequest($"Filename is missing"));
            }

            await _streamManager.ProcessStream(section.Body);

            return(Ok("File saved"));
        }