/// <summary> /// Select values from Marc by primary key(s). /// </summary> /// <param name="sqlConnection">Sql connection or null.</param> /// <param name="sqlTransaction">Sql transaction or null.</param> /// <param name="connectionKeyName">Connection key name located in config file.</param> /// <param name="marcID"></param> /// <returns>Object of type Marc.</returns> public Marc MarcSelectAuto( SqlConnection sqlConnection, SqlTransaction sqlTransaction, string connectionKeyName, int marcID) { SqlConnection connection = CustomSqlHelper.CreateConnection(CustomSqlHelper.GetConnectionStringFromConnectionStrings(connectionKeyName), sqlConnection); SqlTransaction transaction = sqlTransaction; using (SqlCommand command = CustomSqlHelper.CreateCommand("MarcSelectAuto", connection, transaction, CustomSqlHelper.CreateInputParameter("MarcID", SqlDbType.Int, null, false, marcID))) { using (CustomSqlHelper <Marc> helper = new CustomSqlHelper <Marc>()) { CustomGenericList <Marc> list = helper.ExecuteReader(command); if (list.Count > 0) { Marc o = list[0]; list = null; return(o); } else { return(null); } } } }
/// <summary> /// Manage Marc object. /// If the object is of type CustomObjectBase, /// then either insert values into, delete values from, or update values in Marc. /// </summary> /// <param name="sqlConnection">Sql connection or null.</param> /// <param name="sqlTransaction">Sql transaction or null.</param> /// <param name="value">Object of type Marc.</param> /// <returns>Object of type CustomDataAccessStatus<Marc>.</returns> public CustomDataAccessStatus <Marc> MarcManageAuto( SqlConnection sqlConnection, SqlTransaction sqlTransaction, Marc value) { return(MarcManageAuto(sqlConnection, sqlTransaction, "BHL", value)); }
/// <summary> /// Update values in Marc. Returns an object of type Marc. /// </summary> /// <param name="sqlConnection">Sql connection or null.</param> /// <param name="sqlTransaction">Sql transaction or null.</param> /// <param name="value">Object of type Marc.</param> /// <returns>Object of type Marc.</returns> public Marc MarcUpdateAuto( SqlConnection sqlConnection, SqlTransaction sqlTransaction, Marc value) { return(MarcUpdateAuto(sqlConnection, sqlTransaction, "BHL", value)); }
public static bool UploadFile(Marc marc, string bucketName) { S3Client client = new S3Client(bucketName); client.UploadFile(marc.FileLocation + "/" + marc.FileName, marc.FileName); return(true); }
/// <summary> /// Manage Marc object. /// If the object is of type CustomObjectBase, /// then either insert values into, delete values from, or update values in Marc. /// </summary> /// <param name="sqlConnection">Sql connection or null.</param> /// <param name="sqlTransaction">Sql transaction or null.</param> /// <param name="connectionKeyName">Connection key name located in config file.</param> /// <param name="value">Object of type Marc.</param> /// <returns>Object of type CustomDataAccessStatus<Marc>.</returns> public CustomDataAccessStatus <Marc> MarcManageAuto( SqlConnection sqlConnection, SqlTransaction sqlTransaction, string connectionKeyName, Marc value) { if (value.IsNew && !value.IsDeleted) { Marc returnValue = MarcInsertAuto(sqlConnection, sqlTransaction, connectionKeyName, value.MarcImportStatusID, value.MarcImportBatchID, value.MarcFileLocation, value.InstitutionCode, value.Leader, value.TitleID); return(new CustomDataAccessStatus <Marc>( CustomDataAccessContext.Insert, true, returnValue)); } else if (!value.IsNew && value.IsDeleted) { if (MarcDeleteAuto(sqlConnection, sqlTransaction, connectionKeyName, value.MarcID)) { return(new CustomDataAccessStatus <Marc>( CustomDataAccessContext.Delete, true, value)); } else { return(new CustomDataAccessStatus <Marc>( CustomDataAccessContext.Delete, false, value)); } } else if (value.IsDirty && !value.IsDeleted) { Marc returnValue = MarcUpdateAuto(sqlConnection, sqlTransaction, connectionKeyName, value.MarcID, value.MarcImportStatusID, value.MarcImportBatchID, value.MarcFileLocation, value.InstitutionCode, value.Leader, value.TitleID); return(new CustomDataAccessStatus <Marc>( CustomDataAccessContext.Update, true, returnValue)); } else { return(new CustomDataAccessStatus <Marc>( CustomDataAccessContext.NA, false, value)); } }
private void HarvestMarcData(String marcFile, int batchID, String institutionCode) { BHLProvider provider = new BHLProvider(); // Open the file and parse the data within it XmlDocument xml = new XmlDocument(); xml.Load(marcFile); XmlNamespaceManager nsmgr = new XmlNamespaceManager(xml.NameTable); nsmgr.AddNamespace("ns", "http://www.loc.gov/MARC21/slim"); // update the root Marc information String leader = String.Empty; XmlNode marcNode = xml.SelectSingleNode("ns:record/ns:leader", nsmgr); if (marcNode != null) { leader = marcNode.InnerText; } Marc marc = provider.MarcInsertAuto(batchID, marcFile.Replace(ConfigurationManager.AppSettings["MarcUploadDrive"], ConfigurationManager.AppSettings["MarcUploadServer"]), institutionCode, leader, null); // Insert the new Marc control information XmlNodeList controlFields = xml.SelectNodes("ns:record/ns:controlfield", nsmgr); foreach (XmlNode controlField in controlFields) { String tag = (controlField.Attributes["tag"] == null) ? String.Empty : controlField.Attributes["tag"].Value; String value = controlField.InnerText; provider.MarcControlInsertAuto(marc.MarcID, tag, value); } // Insert the new Marc data field and subfield information XmlNodeList dataFields = xml.SelectNodes("ns:record/ns:datafield", nsmgr); foreach (XmlNode dataField in dataFields) { String tag = (dataField.Attributes["tag"] == null) ? String.Empty : dataField.Attributes["tag"].Value; String indicator1 = (dataField.Attributes["ind1"] == null) ? String.Empty : dataField.Attributes["ind1"].Value; String indicator2 = (dataField.Attributes["ind2"] == null) ? String.Empty : dataField.Attributes["ind2"].Value; MarcDataField marcDataField = provider.MarcDataFieldInsertAuto(marc.MarcID, tag, indicator1, indicator2); XmlNodeList subFields = dataField.SelectNodes("ns:subfield", nsmgr); foreach (XmlNode subField in subFields) { String code = (subField.Attributes["code"] == null) ? String.Empty : subField.Attributes["code"].Value; String value = subField.InnerText; provider.MarcSubFieldInsertAuto(marcDataField.MarcDataFieldID, code, value); } } }
/// <summary> /// Insert values into Marc. Returns an object of type Marc. /// </summary> /// <param name="sqlConnection">Sql connection or null.</param> /// <param name="sqlTransaction">Sql transaction or null.</param> /// <param name="connectionKeyName">Connection key name located in config file.</param> /// <param name="value">Object of type Marc.</param> /// <returns>Object of type Marc.</returns> public Marc MarcInsertAuto( SqlConnection sqlConnection, SqlTransaction sqlTransaction, string connectionKeyName, Marc value) { return(MarcInsertAuto(sqlConnection, sqlTransaction, connectionKeyName, value.MarcImportStatusID, value.MarcImportBatchID, value.MarcFileLocation, value.InstitutionCode, value.Leader, value.TitleID)); }
/// <summary> /// Update values in Marc. Returns an object of type Marc. /// </summary> /// <param name="sqlConnection">Sql connection or null.</param> /// <param name="sqlTransaction">Sql transaction or null.</param> /// <param name="connectionKeyName">Connection key name located in config file.</param> /// <param name="marcID"></param> /// <param name="marcImportStatusID"></param> /// <param name="marcImportBatchID"></param> /// <param name="marcFileLocation"></param> /// <param name="institutionCode"></param> /// <param name="leader"></param> /// <param name="titleID"></param> /// <returns>Object of type Marc.</returns> public Marc MarcUpdateAuto( SqlConnection sqlConnection, SqlTransaction sqlTransaction, string connectionKeyName, int marcID, int marcImportStatusID, int marcImportBatchID, string marcFileLocation, string institutionCode, string leader, int?titleID) { SqlConnection connection = CustomSqlHelper.CreateConnection(CustomSqlHelper.GetConnectionStringFromConnectionStrings(connectionKeyName), sqlConnection); SqlTransaction transaction = sqlTransaction; using (SqlCommand command = CustomSqlHelper.CreateCommand("MarcUpdateAuto", connection, transaction, CustomSqlHelper.CreateInputParameter("MarcID", SqlDbType.Int, null, false, marcID), CustomSqlHelper.CreateInputParameter("MarcImportStatusID", SqlDbType.Int, null, false, marcImportStatusID), CustomSqlHelper.CreateInputParameter("MarcImportBatchID", SqlDbType.Int, null, false, marcImportBatchID), CustomSqlHelper.CreateInputParameter("MarcFileLocation", SqlDbType.NVarChar, 500, false, marcFileLocation), CustomSqlHelper.CreateInputParameter("InstitutionCode", SqlDbType.NVarChar, 10, true, institutionCode), CustomSqlHelper.CreateInputParameter("Leader", SqlDbType.NVarChar, 200, false, leader), CustomSqlHelper.CreateInputParameter("TitleID", SqlDbType.Int, null, true, titleID), CustomSqlHelper.CreateReturnValueParameter("ReturnCode", SqlDbType.Int, null, false))) { using (CustomSqlHelper <Marc> helper = new CustomSqlHelper <Marc>()) { CustomGenericList <Marc> list = helper.ExecuteReader(command); if (list.Count > 0) { Marc o = list[0]; list = null; return(o); } else { return(null); } } } }