public IActionResult Post([FromBody] JsonNode tree, bool authorized) { if (tree == null || !authorized) { return(BadRequest()); } // gather variables var fileSeparator = _fileManagementServices.GetFileSeparator(); // get file nodes (by processing json and decrypting encrypted fields) var fileNodes = FileNode.ExtractFromJsonNode(_encryptionServices, tree, fileSeparator); // save files to local disk string treatmentDate = DateTime.UtcNow.ToString("yyyyMMdd-Hmmss"); _fileManagementServices.StoreFilesAsync(fileNodes, treatmentDate); //convert FileNodes to DbFileNodes var dbFileNodes = fileNodes.Select(x => x.ToDbFileNode(treatmentDate, _fileManagementServices.GetFileSeparator())); //inject treatment date folder (see how the above call _fileManagementServices.StoreFilesAsync works) dbFileNodes.Select(x => x.InjectTreatmentDateToRelativePath(treatmentDate, _fileManagementServices.GetFileSeparator())); // persist files in db if (_persistFiles) { _persistenceServices.Insert(dbFileNodes); } return(Ok()); }