Beispiel #1
0
        public ExemplarInfoAPI GetExemplarInfoByIdData(int IDDATA)
        {
            //string connectionString = ConfigurationManager.ConnectionStrings["BookStatusConnection"].ConnectionString;
            string         connectionString = AppSettings.BookStatusConnection;
            string         queryText        = new BJExemplarQueries(this.BaseName).GET_EXEMPLAR_BY_IDDATA;
            DataTable      result           = new DataTable();
            SqlDataAdapter da = new SqlDataAdapter(queryText, connectionString);

            da.SelectCommand.Parameters.Add("IDDATA", SqlDbType.Int).Value = IDDATA;
            da.Fill(result);
            ExemplarInfoAPI ei = new ExemplarInfoAPI(IDDATA);
            string          fieldCode;

            foreach (DataRow row in result.Rows)
            {
                fieldCode = row["MNFIELD"].ToString() + row["MSFIELD"].ToString();
                switch (fieldCode)//пока только автор заглавие
                {
                case "899$a":
                    ei.Location = row["PLAIN"].ToString();
                    break;

                case "899$p":
                    ei.InventoryNumber = row["PLAIN"].ToString();
                    break;

                case "899$w":
                    ei.Barcode = row["PLAIN"].ToString();
                    break;
                }
            }
            queryText = new BJExemplarQueries(this.BaseName).GET_EXEMPLAR_ISSUE_INFO;
            da.SelectCommand.CommandText = queryText;
            result.Clear();
            int cnt = da.Fill(result);

            if (cnt == 0)
            {
                ei.IsIssued = false;
            }
            else
            {
                ei.IsIssued       = true;
                ei.IDReaderTooked = Extensions.HashReaderId(result.Rows[0]["IDREADER"].ToString());
                ei.DateReturn     = ((DateTime)result.Rows[0]["DATE_RET"]).ToString("dd.MM.yyyy");
            }

            return(ei);
        }
Beispiel #2
0
        public BookInfo GetBJBookByID(int iDMAIN)
        {
            //string connectionString = ConfigurationManager.ConnectionStrings["BookStatusConnection"].ConnectionString;
            string         connectionString = AppSettings.ConnectionString;
            string         queryText        = new BJBookQueries(this.BaseName).GET_BOOK_BY_IDMAIN;
            DataTable      result           = new DataTable();
            SqlDataAdapter da = new SqlDataAdapter(queryText, connectionString);

            da.SelectCommand.Parameters.Add("IDMAIN", SqlDbType.Int).Value = iDMAIN;
            da.Fill(result);
            BookInfo   bi = new BookInfo();
            string     fieldCode;
            List <int> ExemplarIdDataList = new List <int>();
            int        currentIDDATA      = (int)result.Rows[0]["IDDATA"];

            foreach (DataRow row in result.Rows)
            {
                fieldCode = row["MNFIELD"].ToString() + row["MSFIELD"].ToString();
                if (((int)row["IDBLOCK"] == 260) && (currentIDDATA != (int)row["IDDATA"]))
                {
                    ExemplarIdDataList.Add((int)row["IDDATA"]); //собираем IDDATA всех экземпляров
                }
                switch (fieldCode)                              //пока только автор заглавие
                {
                case "200$a":
                    bi.Title = row["PLAIN"].ToString();
                    break;

                case "700$a":
                case "701$a":
                    bi.Author.Add(row["PLAIN"].ToString());
                    break;

                case "330$a":
                    bi.Annotation.Add(row["PLAIN"].ToString());
                    break;
                }
                currentIDDATA = (int)row["IDDATA"];
            }
            ExemplarLoader loader = new ExemplarLoader(this._baseName);

            foreach (int iddata in ExemplarIdDataList)
            {
                ExemplarInfoAPI ei = loader.GetExemplarInfoByIdData(iddata);
                bi.Exemplars.Add(ei);
            }
            //проверим есть ли электронный экземпляр. если есть, то добавим его. пока только так можно определить электронный экземпляр. когда они проинвентаризируются, будет создаваться сам в предыдущем цикле
            queryText = new BJBookQueries(this.BaseName).IS_HYPERLINK_EXISTS;
            result    = new DataTable();
            da        = new SqlDataAdapter(queryText, connectionString);
            da.SelectCommand.Parameters.Add("IDMAIN", SqlDbType.Int).Value = iDMAIN;
            int IsHyperlinkExists = da.Fill(result);

            if (IsHyperlinkExists > 0)
            {
                ExemplarInfoAPI ei = new ExemplarInfoAPI(-1);//пока для всех электронных будет -1
                ei = loader.GetElectronicExemplarInfo(this._baseName + "_" + iDMAIN.ToString());
                bi.Exemplars.Add(ei);
            }
            return(bi);
        }