Esempio n. 1
0
        private static FullArticleInfo GetArticleInfoFromTable(DataTable articleData)
        {
            FullArticleInfo articleInfo = null;

            try
            {
                if (articleData != null && articleData.Rows.Count > 0)
                {
                    articleInfo                  = new FullArticleInfo();
                    articleInfo.ArticleType      = articleData.Rows[0]["DOC_TYPE"].ToString();
                    articleInfo.JournalDOI       = articleData.Rows[0]["DOI"].ToString();
                    articleInfo.JournalName      = articleData.Rows[0]["JOURNAL_NAME"].ToString();
                    articleInfo.JournalStartPage = articleData.Rows[0]["START_PAGE"].ToString();
                    articleInfo.JournalEndPage   = articleData.Rows[0]["END_PAGE"].ToString();
                    int journalYear = 0;
                    int.TryParse(articleData.Rows[0]["JOURNAL_YEAR"].ToString(), out journalYear);
                    articleInfo.JournalYear = journalYear;
                }
            }
            catch (Exception ex)
            {
                ErrorHandling.WriteErrorLog(ex.ToString());
            }
            return(articleInfo);
        }
Esempio n. 2
0
        private static FullArticleInfo GetFullArticleDetailsOnShipmentRefID(int shipmentRefID)
        {
            FullArticleInfo objFullArtInfo = null;

            try
            {
                if (shipmentRefID > 0)
                {
                    objFullArtInfo = new FullArticleInfo();
                    objFullArtInfo.ShipmentRefID = shipmentRefID;

                    DataTable dtArticleInfo = ReactionCurationDB.SaveFullArticleInfo(objFullArtInfo);

                    if (dtArticleInfo != null && dtArticleInfo.Rows.Count > 0)
                    {
                        objFullArtInfo.ArticleType   = dtArticleInfo.Rows[0]["REFERENCE_TYPE"].ToString();
                        objFullArtInfo.JournalDOI    = dtArticleInfo.Rows[0]["DOI"].ToString();
                        objFullArtInfo.JournalName   = dtArticleInfo.Rows[0]["JOURNAL_NAME"].ToString();
                        objFullArtInfo.JournalRefNo  = dtArticleInfo.Rows[0]["REFERENCE_NAME"].ToString();
                        objFullArtInfo.JournalVolume = dtArticleInfo.Rows[0]["VOLUME"].ToString();
                        int journalYear = 0;
                        int.TryParse(dtArticleInfo.Rows[0]["JOURNAL_YEAR"].ToString(), out journalYear);
                        objFullArtInfo.JournalYear      = journalYear;
                        objFullArtInfo.JournalStartPage = dtArticleInfo.Rows[0]["START_PAGE"].ToString();
                        objFullArtInfo.JournalEndPage   = dtArticleInfo.Rows[0]["END_PAGE"].ToString();
                    }
                }
            }
            catch (Exception ex)
            {
                ErrorHandling.WriteErrorLog(ex.ToString());
            }
            return(objFullArtInfo);
        }
Esempio n. 3
0
        public static DataTable SaveFullArticleInfo(FullArticleInfo articleInfo)
        {
            string    strTemp           = String.Empty;
            DataTable dtFullArticleInfo = null;

            try
            {
                using (OracleConnection oraCon = ConnectionDB.GetOracleConnection())
                {
                    using (OracleCommand oraCmd = new OracleCommand())
                    {
                        oraCmd.Connection  = oraCon;
                        oraCmd.CommandText = "SHIPMENT_MANAGEMENT.UPDATE_BIBLIOGRAPHY_INFO";
                        oraCmd.CommandType = CommandType.StoredProcedure;

                        oraCmd.Parameters.Add("PIN_SHIPMENT_REF_ID", OracleDbType.Int32).Value = articleInfo.ShipmentRefID;
                        oraCmd.Parameters.Add("PIC_JOURNAL_NAME", OracleDbType.Varchar2).Value = articleInfo.JournalName;
                        oraCmd.Parameters.Add("PIN_JOURNAL_YEAR", OracleDbType.Int32).Value    = articleInfo.JournalYear;
                        oraCmd.Parameters.Add("PIC_VOLUME", OracleDbType.Varchar2).Value       = articleInfo.JournalVolume;
                        oraCmd.Parameters.Add("PIC_ISSUE", OracleDbType.Varchar2).Value        = "";
                        oraCmd.Parameters.Add("PIC_START_PAGE", OracleDbType.Varchar2).Value   = articleInfo.JournalStartPage;
                        oraCmd.Parameters.Add("PIC_END_PAGE", OracleDbType.Varchar2).Value     = articleInfo.JournalEndPage;
                        oraCmd.Parameters.Add("PIC_DOI", OracleDbType.Varchar2).Value          = articleInfo.JournalDOI;

                        oraCmd.Parameters.Add("PORC_SHIPMENT_REFERENCES", OracleDbType.RefCursor).Direction = ParameterDirection.Output;

                        dtFullArticleInfo = new DataTable();
                        using (OracleDataAdapter dataAdapter = new OracleDataAdapter(oraCmd))
                        {
                            dataAdapter.Fill(dtFullArticleInfo);
                        }
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }

            return(dtFullArticleInfo);
        }
Esempio n. 4
0
        /// <summary>
        /// Export Reactions for client delivery
        /// </summary>
        /// <param name="RefIDsList"></param>
        /// <param name="shipmentYear"></param>
        /// <param name="outputPath"></param>
        /// <param name="mdlStartNo"></param>
        /// <param name="deliveryDtls"></param>
        /// <param name="delivSovCats"></param>
        /// <returns></returns>
        public static bool ExportReactionsForClientDelivery(List <int> RefIDsList, string shipmentYear, string outputPath, int mdlStartNo, out Delivery deliveryDtls, out List <DeliverySolvCats> delivSovCatsList)
        {
            bool     blStatus    = false;
            Delivery objDelivery = null;
            List <DeliverySolvCats> lstDeliverySovCats = null;

            try
            {
                int           mdlNo            = mdlStartNo;//70000000;
                List <string> lstUniqSolvInchi = new List <string>();

                //Define Delivery class
                objDelivery = new Delivery();
                objDelivery.DeliveryDate     = DateTime.Now;
                objDelivery.MDLStartNo       = mdlStartNo;
                objDelivery.DeliveryRefCount = RefIDsList.Count;

                List <int> lstDelRefs        = new List <int>();
                List <int> lstDelRefMDLStNo  = new List <int>();
                List <int> lstDelRefMDLEndNo = new List <int>();
                int        deliveredRxnCnt   = 0;

                lstDeliverySovCats = new List <DeliverySolvCats>();

                foreach (int shipRefID in RefIDsList)
                {
                    DataSet   dsRxns      = ReactionCurationDB.GetReactionsForExportOnDocID(shipRefID);
                    DataTable dtRxnRefs   = null;
                    DataTable dtCrossRefs = null;

                    //Automated Export
                    DataSet dsRxn_CrossRefs = ReactionCurationDB.GetRxnAndCrossReferencesOnShipmentRefID(shipRefID);
                    if (dsRxn_CrossRefs != null)
                    {
                        if (dsRxn_CrossRefs.Tables.Count == 2)
                        {
                            dtCrossRefs = dsRxn_CrossRefs.Tables[0];
                            dtRxnRefs   = dsRxn_CrossRefs.Tables[1];
                        }
                    }

                    if (dsRxns != null)
                    {
                        if (dsRxns.Tables.Count == 8)
                        {
                            DataTable dtDocMaster = dsRxns.Tables[0];
                            DataTable dtReactions = dsRxns.Tables[1];
                            //Manual Export
                            //DataTable dtRxnRefs = dsRxns.Tables[2];
                            //DataTable dtCrossRefs = dsRxns.Tables[3];
                            DataTable dtRxnSteps     = dsRxns.Tables[4];
                            DataTable dtConditions   = dsRxns.Tables[5];
                            DataTable dtParticipants = dsRxns.Tables[6];
                            DataTable dtProducts     = dsRxns.Tables[7];

                            // FullArticleInfo articleInfo =  GetArticleInfoFromTable(dtDocMaster);

                            FullArticleInfo articleInfo = GetFullArticleDetailsOnShipmentRefID(Convert.ToInt32(dtDocMaster.Rows[0]["SHIPMENT_REF_ID"].ToString()));

                            string shipementRefName        = dtDocMaster.Rows[0]["REFERENCE_NAME"].ToString();
                            List <ReactionInfo> lstRxnInfo = new List <ReactionInfo>();
                            int reactionID = 0;

                            //Add Reference Name and MDL Start No
                            lstDelRefs.Add(shipRefID);
                            lstDelRefMDLStNo.Add(mdlNo);

                            //Unique ID for reaction (serial number); format: RXCInnnnnnnn;n=numerical range for backfiles is 70000001...89999999.
                            //Feedback on 28th Oct 2014
                            //General: Please assign MDLnumbers according to the year, i.e. issues from 1981 should have MDLnumbers RXCI81nnnnnn, to avoid duplicates

                            foreach (DataRow drow in dtReactions.Rows)
                            {
                                reactionID = Convert.ToInt32(drow["REACTION_ID"]);

                                ReactionInfo rxnInfo = new ReactionInfo();
                                rxnInfo.ShipmentRefID  = shipRefID;
                                rxnInfo.ReactionID     = reactionID;
                                rxnInfo.SysNo          = dtDocMaster.Rows[0]["SYS_NO"].ToString();
                                rxnInfo.SysText        = dtDocMaster.Rows[0]["SYS_TEXT"].ToString();
                                rxnInfo.RxnMDLNo       = "RXCI" + shipmentYear + mdlNo.ToString("000000");//RXCI81nnnnnn
                                rxnInfo.ReactionScheme = drow["REACTION_SCHEME"];
                                rxnInfo.ReactionSNo    = Convert.ToInt32(drow["REACTION_SNO"]);
                                rxnInfo.RxnComments    = drow["RXN_COMMENTS"].ToString();
                                rxnInfo.RxnRef         = GetRxnRefInfoFromTableOnReactionID(dtRxnRefs, reactionID);
                                rxnInfo.RxnCrossRef    = GetCrossRefInfoFromTableOnReactionID(dtCrossRefs, reactionID);
                                rxnInfo.RxnProducts    = GetProductsFromTableOnReactionID(dtProducts, reactionID);
                                rxnInfo.RxnSteps       = GetStepsInfoFromTableOnReactionID(dtRxnSteps, dtParticipants, dtConditions, reactionID);

                                //Add to list
                                lstRxnInfo.Add(rxnInfo);

                                //increment MDL Numer
                                mdlNo++;

                                //Count delivery Rxns
                                deliveredRxnCnt++;
                            }

                            //Add Reference MDL End No
                            lstDelRefMDLEndNo.Add(mdlNo);

                            if (lstRxnInfo != null)
                            {
                                DeliverySolvCats refSovCats = new DeliverySolvCats();
                                if (ReactionExport.ExportToRDFile(lstRxnInfo, articleInfo, shipementRefName, outputPath, ref lstUniqSolvInchi, ref refSovCats))
                                {
                                    blStatus = true;

                                    if (refSovCats.RefNewSolvents != null)
                                    {
                                        refSovCats.ShipmentRefID = shipRefID;

                                        //Add Refs and SolvCats to List
                                        lstDeliverySovCats.Add(refSovCats);
                                    }
                                }
                            }
                        }
                    }
                }

                //Delivery references and Mdl Nos
                objDelivery.DeliveryRefsList  = lstDelRefs;
                objDelivery.RefMdlStartNoList = lstDelRefMDLStNo;
                objDelivery.RefMdlEndNoList   = lstDelRefMDLEndNo;
                objDelivery.DeliveryRxnCount  = deliveredRxnCnt;
                objDelivery.MDLEndNo          = (mdlStartNo + deliveredRxnCnt) - 1;
            }
            catch (Exception ex)
            {
                ErrorHandling.WriteErrorLog(ex.ToString());
            }
            deliveryDtls     = objDelivery;
            delivSovCatsList = lstDeliverySovCats;
            return(blStatus);
        }