public File <int, int> Add(IFolder parent, Stream body, string fileName, bool ensureUniqueName) { var callLog = Log.Call <File <int, int> >($"..., ..., {fileName}, {ensureUniqueName}"); if (ensureUniqueName) { fileName = FindUniqueFileName(parent, fileName); } var fullContentPath = Path.Combine(_serverPaths.FullContentPath(AdamContext.Site.ContentPath), parent.Path); Directory.CreateDirectory(fullContentPath); var filePath = Path.Combine(fullContentPath, fileName); using (var stream = new FileStream(filePath, FileMode.Create)) { body.CopyTo(stream); } var fileInfo = new FileInfo(filePath); // register into oqtane var oqtFileData = new File { Name = Path.GetFileName(fileName), FolderId = parent.Id, Extension = fileInfo.Extension.ToLowerInvariant().Replace(".", ""), Size = (int)fileInfo.Length, ImageHeight = 0, ImageWidth = 0 }; var oqtFile = OqtFileRepository.AddFile(oqtFileData); return(callLog("ok", GetFile(oqtFile.FileId))); }