public static void SaveDocument( Document doc ) { bool hasLocalTransaction = false; //------------------------------------------------------------// //--- Only save to the database if the content is not null ---// //------------------------------------------------------------// BASEBean.eDataState stateId; if (doc.DocumentContent != null) { if (String.IsNullOrEmpty( doc.uuid )) doc.uuid = Guid.NewGuid().ToString(); //-------------------------------------------------// //--- We will save to the database at this time ---// //-------------------------------------------------// DocumentDAO documentDAO = DataManager.getDocumentDAO(); try { if (!documentDAO.IsInTransaction) { documentDAO.StartTransaction(); hasLocalTransaction = true; } var document = new dbDocument(); bool hasDocumentByUuid = documentDAO.hasDocument( doc.uuid ); bool hasDocumentByName = documentDAO.hasDocument( doc.name, (int) doc.DocumentType ); if (hasDocumentByName != hasDocumentByUuid) { string msg = "There is an inconsistancy with the document uuid and the internal uuid for the device, please correct."; MessageBox.Show( msg, @"E R R O R" ); throw new Exception( msg ); } if (hasDocumentByUuid) { document = documentDAO.openDatabaseDocument( doc.uuid ); stateId = document.DataState = ( doc.DataState == BASEBean.eDataState.DS_DELETE ? BASEBean.eDataState.DS_DELETE : BASEBean.eDataState.DS_EDIT ); document.dateUpdated = DateTime.UtcNow; } else { stateId = document.DataState = BASEBean.eDataState.DS_ADD; document.dateAdded = DateTime.UtcNow; } int assetsDeleted = 0; if (stateId == BASEBean.eDataState.DS_DELETE) { if (documentDAO.HasAssets( doc.uuid )) { assetsDeleted = documentDAO.DeleteAssets( doc.uuid ); } } document.UUID = Guid.Parse( doc.uuid ); document.documentDescription = doc.Description; document.documentTypeId = (int) doc.DocumentType; document.documentContent = doc.DocumentContent; document.documentName = doc.name; document.documentSize = doc.DocumentContent.Length; document.contentType = doc.ContentType; document.crc = doc.Crc32; document.save(); if (hasLocalTransaction ) documentDAO.CommitTransaction(); LogManager.Trace( "Document {0} has been {1}", document.documentName, stateId == BASEBean.eDataState.DS_ADD ? "Added" : stateId == BASEBean.eDataState.DS_DELETE ? "Deleted" : "Saved" ); if (assetsDeleted > 0) LogManager.Trace( "Deleted {0} associated assets.", assetsDeleted ); if (document.DataState == BASEBean.eDataState.DS_ADD) document.DataState = BASEBean.eDataState.DS_EDIT; } catch (Exception e) { if (hasLocalTransaction) { documentDAO.RollbackTransaction(); LogManager.Error(e); } else { throw; } } } }
/** * Call this method to save the document data to the database. */ private static void SaveInstrumentDescriptionDocument( InstrumentDescription instrumentDescription, Document document, BASEBean.eDataState dataState) { var dbDocument = new dbDocument(); String xml = instrumentDescription.Serialize(); document.DocumentContent = dbDocument.documentContent = Encoding.UTF8.GetBytes( xml ); dbDocument.documentSize = xml.Length; document.ContentType = dbDocument.contentType = ATMLContext.CONTEXT_TYPE_XML; dbDocument.DataState = dataState; if (dataState == BASEBean.eDataState.DS_ADD) dbDocument.dateAdded = DateTime.UtcNow; else if (dataState == BASEBean.eDataState.DS_EDIT) dbDocument.dateUpdated = DateTime.UtcNow; document.Description = dbDocument.documentDescription = instrumentDescription.Description; dbDocument.documentTypeId = (int) dbDocument.DocumentType.INSTRUMENT_DESCRIPTION; document.DocumentType = dbDocument.DocumentType.INSTRUMENT_DESCRIPTION; document.version = dbDocument.documentVersion = instrumentDescription.version; document.name = dbDocument.documentName = instrumentDescription.Identification.ModelName; dbDocument.UUID = Guid.Parse( instrumentDescription.uuid ); document.uuid = instrumentDescription.uuid; dbDocument.save(); }
public static void SaveDocument( DocumentReference docRef ) { bool newDocument = false; if (String.IsNullOrEmpty( docRef.uuid )) docRef.uuid = Guid.NewGuid().ToString(); //-------------------------------------------------// //--- We will save to the database at this time ---// //-------------------------------------------------// DocumentDAO documentDAO = DataManager.getDocumentDAO(); var document = new dbDocument(); if (documentDAO.hasDocument( docRef.uuid )) { document = documentDAO.openDatabaseDocument( docRef.uuid ); document.DataState = BASEBean.eDataState.DS_EDIT; document.dateUpdated = DateTime.UtcNow; } else { document.DataState = BASEBean.eDataState.DS_ADD; document.dateAdded = DateTime.UtcNow; newDocument = true; } document.documentContent = docRef.DocumentContent; document.documentName = docRef.DocumentName; document.documentSize = docRef.DocumentContent.Length; document.contentType = docRef.ContentType; document.save(); LogManager.Trace( "Referenced Document {0} has been {1}", document.documentName, newDocument ? "Added" : "Saved" ); }
public void Save() { string content = Serialize(); var document = new dbDocument(); var dao = new DocumentDAO(); bool documentExists = dao.hasDocument(uuid); //if( !documentExists ) // LogManager.Trace("Creating new Test Adapter Description with uuid of {0}", uuid); //else // LogManager.Trace("Saving Test Adapter Description with uuid of {0}", uuid); document.contentType = "text/xml"; document.documentDescription = "Test Adapter"; document.documentName = Identification.ModelName; document.documentVersion = version; document.documentSize = content.Length; document.documentTypeId = (int) dbDocument.DocumentType.TEST_ADAPTER_DESCRIPTION; document.documentContent = Encoding.UTF8.GetBytes(content); document.UUID = Guid.Parse(uuid); document.DataState = documentExists ? BASEBean.eDataState.DS_EDIT : BASEBean.eDataState.DS_ADD; document.save(); foreach (IdentificationNumber idNumber in Identification.IdentificationNumbers) { string type = Enum.GetName(typeof (IdentificationNumberType), idNumber.type); string number = idNumber.number; var asset = new AssetIdentificationBean(); asset.assetNumber = number; asset.assetType = type; asset.uuid = Guid.Parse(uuid); asset.DetermineDataState(); asset.save(); } }