public ActionResponseDocument GetById([FromBody] ActionRequestDocument action) { _logger.LogDebug($"API:{MammutUtility.GetCurrentMethod()}"); var result = new ActionResponseDocument(); var session = _core.Session.ObtainSession(action.SessionId); try { var metaDocument = _core.Document.GetById(session, action.Path, action.Id); result.Document = MetaDocument.ToPayload(metaDocument); result.Id = metaDocument.Id; result.Success = true; } catch (Exception ex) { result.Success = false; result.Message = "Call failed with an exception: " + ex.Message; _logger.LogError(result.Message); } finally { session.CommitImplicitTransaction(); } return(result); }
/// <summary> /// Creates a new single document and returns its id. /// </summary> /// <param name="schemaPath"></param> /// <returns></returns> public Guid Create(Session session, string logicalSchemaPath, Common.Payload.Model.Document document) { session.CurrentTransaction.AcquireSchemaLatch(logicalSchemaPath, Constants.LatchMode.Shared); var schemaInfo = _core.Schema.Parse(session, logicalSchemaPath); if (schemaInfo.Exists == false) { throw new Exception("The specified schema does not exist."); } //We allow the document ID to be generated at the client side. if (document.Id == Guid.Empty) { document.Id = Guid.NewGuid(); } var collection = _core.IO.GetJson <MetaDocumentCollection>(session, schemaInfo.DocumentCatalog); var documentFilePath = schemaInfo.GetDocumentFileName(document); _core.IO.PutJson(session, documentFilePath, MetaDocument.FromPayload(document)); collection.Add(MetaDocument.FromPayload(document)); _core.IO.PutJson(session, schemaInfo.DocumentCatalog, collection); return(document.Id); }
public string GetDocumentFileName(MetaDocument document) => GetDocumentFileName(document.Id);
public string GetDocumentLogicalPath(MetaDocument document) => GetDocumentLogicalPath(document.Id);