public byte[] GetFileBytes(int accessTokenId) { var token = _tokenManager.GetToken(accessTokenId); if (_webDavManager.FileExist(token.FilePath)) { return(_webDavManager.GetFileBytes(token.FilePath)); } var cobaltFile = _fileManager.Get(token.FilePath) ?? _fileManager.Create(accessTokenId); var stream = new MemoryStream(); new GenericFda(cobaltFile.CobaltEndpoint, null).GetContentStream().CopyTo(stream); return(stream.ToArray()); }
public Atom ProcessRequest(int accessTokenId, Stream requestStream) { var token = _tokenManager.GetToken(accessTokenId); var atomRequest = new AtomFromStream(requestStream); var requestBatch = new RequestBatch(); try { var cobaltFile = _fileManager.Get(token.FilePath) ?? _fileManager.Create(accessTokenId); Object ctx; ProtocolVersion protocolVersion; requestBatch.DeserializeInputFromProtocol(atomRequest, out ctx, out protocolVersion); cobaltFile.CobaltEndpoint.ExecuteRequestBatch(requestBatch); foreach (var request in requestBatch.Requests) { if (request.GetType() == typeof(PutChangesRequest) && request.PartitionId == FilePartitionId.Content && request.CompletedSuccessfully) { using (var saveStream = new MemoryStream()) { CopyStream(cobaltFile, saveStream); _webDavManager.UploadFile(token.FilePath, saveStream.ToArray()); } } } return(requestBatch.SerializeOutputToProtocol(protocolVersion)); } catch (Exception e) { Server.Utils.Log.WriteError("Cobalt manager Process request", e); throw; } }