public async Task <IActionResult> UploadFile([FromQuery] string folderId)
        {
            if (!_multipartRequestHelper.IsMultipartContentType(Request.ContentType))
            {
                return(BadRequest($"Expected a multipart request, but got {Request.ContentType}"));
            }
            try
            {
                var createFolder = string.IsNullOrEmpty(folderId) && !await _filesRepository.FolderExists(folderId);

                if (createFolder)
                {
                    var folder = new Folder
                    {
                        NameId = "My Folder Id",
                    };
                    await _filesRepository.AddFolder(folder);

                    folderId = folder.Id;
                }
                var boundary = _multipartRequestHelper.GetBoundary(MediaTypeHeaderValue.Parse(Request.ContentType), _defaultFormOptions.MultipartBoundaryLengthLimit);
                var reader   = new MultipartReader(boundary, HttpContext.Request.Body);
                var fileDesc = new FileDescription
                {
                    Url = "api/Files/download-file?id={id}&file={path}"
                };
                FileAccumulator newFile = null;

                newFile = await _mongoStreamer.UploadFileAsync(reader);

                if (newFile != null)
                {
                    fileDesc.Id           = newFile.Id;
                    fileDesc.Url          = fileDesc.Url.Replace("{id}", newFile.Id).Replace("{path}", Uri.EscapeDataString(newFile.Filename));
                    fileDesc.Name         = newFile.Filename;
                    fileDesc.Created_time = DateTime.UtcNow;
                    if (!await _filesRepository.AddFileToFolder(folderId, fileDesc))
                    {
                        return
                            (BadRequest(new
                        {
                            ErrorDescription = "Could not upload."
                        }));
                    }
                    return(Ok(new { Folder = folderId, FileUrl = fileDesc.Url }));
                }
                else
                {
                    _logger.LogError($"{DateTime.UtcNow} Upload failed.");
                    return
                        (BadRequest(new
                    {
                        Errors = new { Image = new object[] { new { ErrorMessage = "There is no image to upload" } } },
                        ErrorDescription = "Could not upload."
                    }));
                }


                //return Ok(new { Edge = post_edge, ImageUrl = template.Url });
            }
            catch (Exception e)
            {
                _logger.LogError(e.Message);
                return
                    (BadRequest(new
                {
                    e.StackTrace,
                    ErrorDescription = "Could not fulfill the request."
                }));
            }
        }