public ExemplarInfo GetExemplarInfoByIdData(int IDDATA)
        {
            string         connectionString = ConfigurationManager.ConnectionStrings["BookStatusConnection"].ConnectionString;
            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);
            ExemplarInfo ei = new ExemplarInfo(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;
                }
            }
            return(ei);
        }
Exemplo n.º 2
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);
        }
Exemplo n.º 3
0
        public ElectronicExemplarInfoAPI GetElectronicExemplarInfo(string id)
        //временно получаем так, пока не будут проинвентаризированы электронные копии
        {
            //string ip = ConfigurationManager.ConnectionStrings["IPAddressFileServer"].ConnectionString;
            string ip = AppSettings.IPAddressFileServer;
            //string login = ConfigurationManager.ConnectionStrings["LoginFileServer"].ConnectionString;
            string login = AppSettings.LoginFileServerRead;
            //string pwd = ConfigurationManager.ConnectionStrings["PasswordFileServer"].ConnectionString;
            string pwd            = AppSettings.PasswordFileServerRead;
            string _directoryPath = @"\\" + ip + @"\BookAddInf\";

            ElectronicExemplarInfoAPI result = new ElectronicExemplarInfoAPI(-1);//пока что так мы создаем электронный экземпляр

            //когда появится инвентаризация электронных копий, то сюда надо вставить получение инфы об электронной копии
            FileInfo[] fi;
            using (new NetworkConnection(_directoryPath, new NetworkCredential("BJStor01\\imgview", "Image_123Viewer")))
            {
                _directoryPath = @"\\" + ip + @"\BookAddInf\" + ElectronicExemplarInfoAPI.GetPathToElectronicCopy(id);

                DirectoryInfo di = new DirectoryInfo(_directoryPath);
                if (!di.Exists)
                {
                    return(null);//каталога с картинками страниц не существует
                }
                DirectoryInfo hq = new DirectoryInfo(_directoryPath + @"\JPEG_HQ\");
                result.IsExistsHQ = (hq.Exists) ? true : false;
                result.Path_HQ    = (hq.Exists) ? hq.FullName.Substring(di.FullName.IndexOf("BookAddInf") + 11).Replace(@"\", @"/") : null;

                DirectoryInfo lq = new DirectoryInfo(_directoryPath + @"\JPEG_LQ\");
                result.IsExistsLQ = (lq.Exists) ? true : false;
                result.Path_LQ    = (lq.Exists)? lq.FullName.Substring(di.FullName.IndexOf("BookAddInf") + 11).Replace(@"\", @"/") : null;

                fi = hq.GetFiles("*.jpg").OrderBy(f => f.Name).ToArray(); //сортируем по дате изменения. именно в таком порядке они сканировались. а вообще вопрос непростой, поскольку попадаются файлы, выпадающие из этого условия

                foreach (FileInfo f in fi)
                {
                    result.JPGFiles.Add(f.Name);
                }
                FileInfo coverPath = new FileInfo(_directoryPath + @"\JPEG_AB\cover.jpg");
                result.Path_Cover = (coverPath.Exists) ? coverPath.FullName.Substring(di.FullName.IndexOf("BookAddInf") + 11).Replace(@"\", @"/") : null;
                //di.FullName.Substring(di.FullName.IndexOf("BookAddInf") + 11).Replace(@"\", @"/");
            }
            //string connectionString = ConfigurationManager.ConnectionStrings["BookStatusConnection"].ConnectionString;
            string         connectionString = AppSettings.BookStatusConnection;
            string         queryText        = new BJExemplarQueries(this.BaseName).GET_ELECTRONIC_EXEMPLAR_BOOKADDINF;
            DataTable      table            = new DataTable();
            SqlDataAdapter da = new SqlDataAdapter(queryText, connectionString);

            da.SelectCommand.Parameters.Add("IDMAIN", SqlDbType.Int).Value = id.Substring(id.LastIndexOf("_") + 1);
            da.Fill(table);
            result.ForAllReader = (bool)table.Rows[0]["ForAllReader"];


            da.SelectCommand.CommandText = new BJExemplarQueries(this.BaseName).GET_ELECTRONIC_EXEMPLAR_STATUS;
            table = new DataTable();
            int cnt = da.Fill(table);

            result.Status = (cnt > 0) ? "unavailable" : "available";


            Image img = Image.FromFile(fi[1].FullName);//берём вторую страницу, потому что первая бывает с пустым разворотом

            result.WidthFirstFile   = img.Width;
            result.HeightFirstFile  = img.Height;
            result.IsElectronicCopy = true;

            queryText = new BJExemplarQueries(this.BaseName).GET_ELECTRONIC_EXEMPLAR_ISSUE_INFO;
            da.SelectCommand.CommandText = queryText;
            table.Clear();
            cnt = da.Fill(table);
            if (cnt == 0)
            {
                result.IsIssued = false;
            }
            else
            {
                result.IsIssued       = true;
                result.IDReaderTooked = Extensions.HashReaderId(table.Rows[0]["IDREADER"].ToString());
                foreach (DataRow row in table.Rows)
                {
                    result.IDReadersTooked.Add(Extensions.HashReaderId(row["IDREADER"].ToString()));
                }

                result.DateReturn = ((DateTime)table.Rows[0]["DATERETURN"]).ToString("dd.MM.yyyy");
            }


            return(result);
            //return JsonConvert.SerializeObject(result, Newtonsoft.Json.Formatting.Indented);
        }