public int GetBusyElectronicExemplarCount() { BJDatabaseWrapper dbw = new BJDatabaseWrapper(this.Fund); DataTable table = dbw.GetBusyElectronicExemplarCount(this.ID); return(table.Rows.Count); }
public DateTime GetLastIncrementDate(string fund) { BJDatabaseWrapper db = new BJDatabaseWrapper(fund); DataTable table = db.GetLastIncrementDate(); return((DateTime)table.Rows[0][0]); }
public bool IsElectronicCopyIssued() { BJDatabaseWrapper dbw = new BJDatabaseWrapper(this.Fund); DataTable table = dbw.IsElectronicCopyIssued(this.ID); return((table.Rows.Count != 0) ? true : false); }
public string GetElectronicViewKeyForReader(int IDREADER) { BJDatabaseWrapper dbw = new BJDatabaseWrapper(this.Fund); DataTable table = dbw.GetElectronicViewKeyForReader(this.ID, IDREADER); return(table.Rows[0]["VIEWKEY"].ToString()); }
public bool IsElectronicCopyIsuuedToReader(int IDREADER) { BJDatabaseWrapper dbw = new BJDatabaseWrapper(this.Fund); DataTable table = dbw.IsElectronicCopyIsuuedToReader(this.ID, IDREADER); return((table.Rows.Count != 0)? true : false); }
//этот метод закрыть с потрохами public bool IsIssuedToReader() { switch (this.Fund) { case "BJVVV": BJDatabaseWrapper dbw = new BJDatabaseWrapper(this.Fund); DataTable table = dbw.IsIssuedToReader(this.IdData); return((table.Rows.Count == 0) ? false : true); default: return(false); } }
public bool IsSelfIssuedOrOrderedEmployee(int IdReader) { switch (this.Fund) { case "BJVVV": BJDatabaseWrapper dbw = new BJDatabaseWrapper(this.Fund); DataTable table = dbw.IsSelfIssuedOrOrderedEmployee(this.IdData, this.IDMAIN, IdReader); return((table.Rows.Count == 0) ? false : true); default: return(false); } }
public static BJExemplarInfo GetExemplarByInventoryNumber(string inv, string fund) { BJDatabaseWrapper dbw = new BJDatabaseWrapper(fund); DataTable table = dbw.GetExemplar(inv); if (table.Rows.Count == 0) { return(null); } BJExemplarInfo exemplar = BJExemplarInfo.GetExemplarByIdData((int)table.Rows[0]["IDDATA"], fund); return(exemplar); }
public static BJBookInfo GetBookInfoByInventoryNumber(string inv, string fund) { BJDatabaseWrapper dbw = new BJDatabaseWrapper(fund); DataTable table = dbw.GetExemplar(inv); if (table.Rows.Count == 0) { return(null); } BJBookInfo result = BJBookInfo.GetBookInfoByPIN((int)table.Rows[0]["IDMAIN"], fund); return(result); }
public string GetEmployeeStatus() { switch (this.Fund) { case "BJVVV": BJDatabaseWrapper dbw = new BJDatabaseWrapper(this.Fund); DataTable table = dbw.GetEmployeeStatus(this.IDMAIN); return((table.Rows.Count == 0) ? "" : table.Rows[0][0].ToString()); default: return(""); } }
public void IssueElectronicCopyToReader(int IDREADER) { ReaderInfo reader = ReaderInfo.GetReader(IDREADER); BJDatabaseWrapper dbw = new BJDatabaseWrapper(this.Fund); byte[] random = new byte[20]; RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider(); rng.GetBytes(random); // The array is now filled with cryptographically strong random bytes. string ViewKey = Convert.ToBase64String(random); int IssuePeriodDays = 30; dbw.IssueElectronicCopyToReader(this.ID, IssuePeriodDays, ViewKey, IDREADER, reader.TypeReader); }
public DateTime GetNearestFreeDateForElectronicIssue() { BJDatabaseWrapper dbw = new BJDatabaseWrapper(this.Fund); DataTable table = dbw.GetNearestFreeDateForElectronicIssue(this.ID); if (table.Rows.Count == 0) { return(DateTime.Today); } object o = table.Rows[0][0]; if (o == DBNull.Value) { return(DateTime.Today); } return((DateTime)table.Rows[0][0]); }
public bool IsOneDayPastAfterReturn(int IDREADER) { BJDatabaseWrapper dbw = new BJDatabaseWrapper(this.Fund); DataTable table = dbw.IsOneDayPastAfterReturn(this.ID, IDREADER); foreach (DataRow r in table.Rows) { TimeSpan ts = (DateTime.Now.Date - (DateTime)r["DATERETURN"]); if (ts.Days >= 1) { return(true); } else { return(false); } } return(true); }
private static BJConvoluteInfo GetConvoluteInfo(string InventoryNumber, string fund) { Stopwatch sw = new Stopwatch(); sw.Start(); BJDatabaseWrapper dbw = new BJDatabaseWrapper(fund); //DataTable table = dbw.GetExemplar(InventoryNumber); DataTable table = dbw.GetConvolute(InventoryNumber); sw.Stop(); if (table.Rows.Count == 0) { return(null); } BJConvoluteInfo convolute = new BJConvoluteInfo(); convolute.Fund = fund; convolute.IDDATA = (int)table.Rows[0]["IDDATA"]; convolute.IDMAIN = (int)table.Rows[0]["IDMAIN"]; return(convolute); }
public override object GetCurrentIncrement() { BJDatabaseWrapper dbWrapper = new BJDatabaseWrapper(this.Fund); List <IncrementStruct> Increment = new List <IncrementStruct>(); StringBuilder sb = new StringBuilder(); DataTable table = dbWrapper.GetIncrementUpdate(); foreach (DataRow row in table.Rows) { sb.Clear(); sb.AppendFormat("{0}_{1}", this.Fund, row["IDMAIN"].ToString()); Increment.Add(new IncrementStruct("updated", sb.ToString())); //Debug.Assert(sb.Length < 7, row["IDMAIN"].ToString()); } table = dbWrapper.GetIncrementDeleted(); foreach (DataRow row in table.Rows) { sb.Clear(); sb.AppendFormat("{0}_{1}", this.Fund, row["IDMAIN"].ToString()); Increment.Add(new IncrementStruct("deleted", sb.ToString())); } table = dbWrapper.GetIncrementCovers(); foreach (DataRow row in table.Rows) { sb.Clear(); sb.AppendFormat("{0}_{1}", this.Fund, row["IDMAIN"].ToString()); Increment.Add(new IncrementStruct("cover", sb.ToString())); } return(Increment); }
public BJExemplarLoader(string Fund) { this.Fund = Fund; dbWrapper = new BJDatabaseWrapper(Fund); }
static void BJIncrementUpdate(string Fund) { /////////////////////////////////////////////////////////////////////// //BJVuFindConverter converter1 = new BJVuFindConverter(Fund); //BJDatabaseWrapper wrapper1 = new BJDatabaseWrapper(Fund); //int IDMAIN1 = 909236; //DataTable BJRecord1 = wrapper1.GetBJRecord(IDMAIN1); //if (BJRecord1.Rows.Count == 0) //{ // return; //} //VufindDoc doc1 = converter1.CreateVufindDocument(IDMAIN1); /////////////////////////////////////////////////////////////////////// logger.Info("Начало инкрементной загрузки " + Fund + "..."); Console.WriteLine("Начало инкрементной загрузки " + Fund + "..."); BJVufindIndexUpdater bj = new BJVufindIndexUpdater(@"catalog.libfl.ru", Fund); //получаем инкремент List <IncrementStruct> Increment = new List <IncrementStruct>(); List <IncrementStruct> IncrementCovers = new List <IncrementStruct>(); try { Increment = (List <IncrementStruct>)bj.GetCurrentIncrement(); } catch (Exception ex) { logger.Error("Загрузка инкремента завершилось неудачей. " + ex.Message); Console.WriteLine("Error..."); //Console.ReadKey(); return; } logger.Info("Загрузка инкремента " + Fund + " успешно завершена..."); Console.WriteLine("Загрузка инкремента " + Fund + " успешно завершена..."); //вычленияем удалённые записи и удаляем их из индекса List <IncrementStruct> RemovedBooks = Increment.FindAll(x => x.Flag == "deleted"); List <IncrementStruct> UpdatedBooks = Increment.FindAll(x => x.Flag == "updated"); List <IncrementStruct> CoverUpdatedBooks = Increment.FindAll(x => x.Flag == "cover"); List <string> BooksToDeleteIds = new List <string>(); foreach (IncrementStruct elt in Increment) { StringBuilder sb = new StringBuilder(); if (elt.Flag != "cover") { sb.AppendFormat("{0}", elt.Id); BooksToDeleteIds.Add(sb.ToString()); } } Console.WriteLine("Начинаю удаление изменённых/удалённых " + Fund + " записей из индекса..."); logger.Info("Начинаю удаление изменённых/удалённых " + Fund + " записей из индекса..."); try { bj.DeleteFromIndex(BooksToDeleteIds);//удаляем сразу все одним запросом. } catch (Exception ex) { logger.Error("Удаление завершилось неудачей. \n" + ex.Message); Console.WriteLine("Удаление завершилось неудачей. \n" + ex.Message); //Console.ReadKey(); return; } foreach (string elt in BooksToDeleteIds) { StringBuilder sb = new StringBuilder(); sb.AppendFormat("Запись {0} удалена из индекса", elt); Console.WriteLine(sb.ToString()); logger.Info(sb.ToString()); } //теперь добавляем новые и изменяем изменённые. Изменённые заменяться автоматически Console.WriteLine("Начинаю обновление " + Fund + " изменённых записей..."); logger.Info("Начинаю обновление " + Fund + " изменённых записей..."); BJVuFindConverter converter = new BJVuFindConverter(Fund); List <VufindDoc> UpdatedBooksList = new List <VufindDoc>(); VufindDoc doc; //для отладки //UpdatedBooks = UpdatedBooks.Take(5).ToList(); try { foreach (IncrementStruct elt in UpdatedBooks) { BJDatabaseWrapper wrapper = new BJDatabaseWrapper(Fund); int IDMAIN = int.Parse(elt.Id.Substring(elt.Id.IndexOf("_") + 1)); DataTable BJRecord = wrapper.GetBJRecord(IDMAIN); if (BJRecord.Rows.Count == 0) { continue; } doc = converter.CreateVufindDocument(IDMAIN); if (doc == null) { continue; } UpdatedBooksList.Add(doc); } } catch (Exception ex) { logger.Error("Формирование списка обновляемых записей завершилось неудачей. \n" + ex.Message); Console.WriteLine("Error..."); } try { bj.AddToIndex(UpdatedBooksList); } catch (Exception ex) { logger.Error("Добавление в индекс завершилось неудачей. \n" + ex.Message); Console.WriteLine("Error..."); //Console.ReadKey(); return; } foreach (VufindDoc vfdoc in UpdatedBooksList) { StringBuilder sb = new StringBuilder(); sb.AppendFormat("Запись {0} обновлена. ", vfdoc.id); Console.WriteLine(sb.ToString()); logger.Info(sb.ToString()); } Console.WriteLine("Начинаю обновление обложек " + Fund + "..."); logger.Info("Начинаю обновление обложек " + Fund + "..."); foreach (IncrementStruct elt in CoverUpdatedBooks) { //скачиваем обложечку try { converter.ExportSingleCover(elt.Id); } catch (Exception ex) { Console.WriteLine("Скачивание обложки " + elt.Id + " завершилось неудачей. " + ex.Message); logger.Error("Скачивание обложки " + elt.Id + " завершилось неудачей. " + ex.Message); continue; } Console.WriteLine("Обложка " + elt.Id + " скачана успешно. "); logger.Info("Обложка " + elt.Id + " скачана успешно. "); } bj.SetLastIncrementDate(Fund); logger.Info("Завершено."); Console.WriteLine("Завершено."); }
private void button1_Click(object sender, EventArgs e) { BJDatabaseWrapper dbWrapper = new BJDatabaseWrapper("BJVVV"); DataTable record = dbWrapper.GetBJRecord(17132); int cnt = record.Rows.Count; }
public BJBookLoader(string Fund) { this.Fund = Fund; dbWrapper = new BJDatabaseWrapper(Fund); }
public static BJExemplarInfo GetExemplarByIdData(int iddata, string fund) { BJDatabaseWrapper dbw = new BJDatabaseWrapper(fund); DataTable table = dbw.GetExemplar(iddata); if (table.Rows.Count == 0) { return(null); } BJExemplarInfo exemplar = new BJExemplarInfo((int)table.Rows[0]["IDDATA"]); exemplar.IDMAIN = (int)table.Rows[0]["IDMAIN"]; exemplar.Fund = fund; foreach (DataRow row in table.Rows)//записываем все поля в объект { if (fund == "BJACC") { if (row["MNFIELD"].ToString() + row["MSFIELD"].ToString() == "899$w") //в американской базе нет инвентарных номеров. берем штрихкод { exemplar.Created = (DateTime)row["Created"]; //за дату создания берем дату присвоения штрихкода } } else { if (row["MNFIELD"].ToString() + row["MSFIELD"].ToString() == "899$p") //в остальных есть и берём дату создания поля инвентарный номер { exemplar.Created = (DateTime)row["Created"]; //за дату создания берем дату присвоения инвентаря } } if (row["MNFIELD"].ToString() + row["MSFIELD"].ToString() == "899$a") { exemplar.Fields.AddField(row["NAME"].ToString(), (int)row["MNFIELD"], row["MSFIELD"].ToString()); //местонахождение берём из LIST_8, а не из DATAEXTPLAIN, потому что в поле PLAIN меняются некоторые символы continue; } exemplar.Fields.AddField(row["PLAIN"].ToString(), (int)row["MNFIELD"], row["MSFIELD"].ToString());//добавляем все поля блока 260 к объекту экземпляра } try { exemplar.ExemplarAccess = BJExemplarInfo.GetExemplarAccess(exemplar); } catch (Exception ex) { throw ex; } if (exemplar.Fields["482$a"].MNFIELD != 0)//это приплётышь { BJConvoluteInfo convolute = BJExemplarInfo.GetConvoluteInfo(exemplar.Fields["482$a"].ToString(), exemplar.Fund); //BJExemplarInfo Convolute = BJExemplarInfo.GetExemplarByInventoryNumber(exemplar.Fields["482$a"].ToString(), exemplar.Fund); if (convolute != null)//нашёлся конволют { exemplar.ConvolutePin = $"{convolute.Fund}_{convolute.IDMAIN}"; exemplar.ConvoluteIdData = convolute.IDDATA; } else//не нашёлся конволют { exemplar.ConvolutePin = null; } } else { //это не приплётышь ConvolutePin exemplar.ConvolutePin = null; } exemplar.Cipher = string.IsNullOrEmpty(exemplar.Fields["899$j"].ToString()) ? dbw.GetCipher(exemplar.Fields["899$b"].ToString(), exemplar.IDMAIN) : exemplar.Fields["899$j"].ToString(); exemplar.Bar = exemplar.Fields["899$w"].ToString(); return(exemplar); }
public void SetLastIncrementDate(string fund) { BJDatabaseWrapper db = new BJDatabaseWrapper(fund); db.SetLastIncrementDate(DateTime.Now.AddHours(-1)); }