Esempio n. 1
0
        /// <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);
                    }
                }
            }
        }
Esempio n. 2
0
 /// <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));
 }
Esempio n. 3
0
 /// <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));
 }
Esempio n. 4
0
        public static bool UploadFile(Marc marc, string bucketName)
        {
            S3Client client = new S3Client(bucketName);

            client.UploadFile(marc.FileLocation + "/" + marc.FileName, marc.FileName);
            return(true);
        }
Esempio n. 5
0
        /// <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));
            }
        }
Esempio n. 6
0
        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);
                }
            }
        }
Esempio n. 7
0
 /// <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));
 }
Esempio n. 8
0
        /// <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);
                    }
                }
            }
        }