public BookInfo GetBJBookByID(int iDMAIN)
        {
            string         connectionString = ConfigurationManager.ConnectionStrings["BookStatusConnection"].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)
            {
                ExemplarInfo 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)
            {
                ExemplarInfo ei = new ExemplarInfo(-1);//пока для всех электронных будет -1
                ei = loader.GetElectronicExemplarInfo(this._baseName + "_" + iDMAIN.ToString());
                bi.Exemplars.Add(ei);
            }
            return(bi);
        }
        public BookInfo GetBJBookByINV(string invNumber)
        {
            string         connectionString = ConfigurationManager.ConnectionStrings["BookStatusConnection"].ConnectionString;
            string         queryText        = new BJBookQueries(this.BaseName).GET_IDMAIN_BY_INVNUMBER;
            DataTable      result           = new DataTable();
            SqlDataAdapter da = new SqlDataAdapter(queryText, connectionString);

            da.SelectCommand.Parameters.Add("InvNumber", SqlDbType.NVarChar).Value = invNumber;
            da.Fill(result);
            if (result.Rows.Count == 0)
            {
                return(null);
            }
            int IDMAIN = (int)result.Rows[0]["IDMAIN"];

            return(this.GetBJBookByID(IDMAIN));
        }