private void bProlong_Click(object sender, EventArgs e) { if (DialogResult.Yes == MessageBox.Show("Вы действительно хотите продлить права бесплатного абонемента?", "Подтверждение", MessageBoxButtons.YesNo)) { if (reader.Rights[ReaderRightsEnum.FreeAbonement] != null) { if (reader.Rights[ReaderRightsEnum.FreeAbonement].DateEndReaderRight.Date <= DateTime.Today.Date) { reader.ProlongRights(ReaderRightsEnum.FreeAbonement); reader = ReaderInfo.GetReader(reader.NumberReader); this.Init(reader.NumberReader); } else { MessageBox.Show("Срок действия прав ещё не окончен!"); return; } } else { MessageBox.Show("Отсутствуют права бесплатного абонемента!"); return; } MessageBox.Show("Права бесплатного абонемента успешно продлены!"); } }
public HttpResponseMessage ByEmail() { string JSONRequest = Request.Content.ReadAsStringAsync().Result; UserEmail request = new UserEmail(); try { request = JsonConvert.DeserializeObject <UserEmail>(JSONRequest, ALISSettings.ALISDateFormatJSONSettings); } catch { return(ALISErrorFactory.CreateError("G001", Request)); } ReaderInfo reader; try { reader = ReaderInfo.GetReader(request.Email); } catch (Exception ex) { return(ALISErrorFactory.CreateError(ex.Message, Request)); } if (reader == null) { return(ALISErrorFactory.CreateError("R004", Request)); } ReaderSimpleView result = ReaderViewFactory.GetReaderSimpleView(reader); return(ALISResponseFactory.CreateResponse(result, Request)); }
public void Init(int NumberReader) { reader = ReaderInfo.GetReader(NumberReader); label1.Text = "Адрес фактического проживания или временной регистрации в России №" + reader.NumberReader + ".\n " + reader.FamilyName + " " + reader.Name + " " + reader.FatherName; Dictionary <int, string> CountryTable = ReaderInfo.GetCountriesList(); BindingSource bs = new BindingSource(CountryTable, null); cbCountry.DataSource = bs; cbCountry.ValueMember = "Key"; cbCountry.DisplayMember = "Value"; cbCountry.SelectedValue = reader.RegistrationCountry; tbRegion.Text = reader.LiveRegion; tbProvince.Text = reader.LiveProvince; tbDistrict.Text = reader.LiveDistrict; tbCity.Text = reader.LiveCity; tbStreet.Text = reader.LiveStreet; tbHouse.Text = reader.LiveHouse; tbFlat.Text = reader.LiveFlat; if (reader.MobileTelephone.Length == 14) { tbMobilePhoneCode.Text = reader.MobileTelephone.Substring(3, 3); tbMobilePhone.Text = reader.MobileTelephone.Substring(7, 7); } tbEmail.Text = reader.Email; readerRightsView1.Init(NumberReader); DisableAll(); }
public HttpResponseMessage SetPasswordLocalReader() { string JSONRequest = Request.Content.ReadAsStringAsync().Result; SetPasswordLocalReader request; try { request = JsonConvert.DeserializeObject <SetPasswordLocalReader>(JSONRequest, ALISSettings.ALISDateFormatJSONSettings); } catch { return(ALISErrorFactory.CreateError("G001", Request)); } ReaderInfo reader; try { reader = ReaderInfo.GetReader(request.ReaderId); } catch (Exception ex) { return(ALISErrorFactory.CreateError("R004", Request)); } try { reader.SetPasswordLocalReader(request, reader); } catch (Exception ex) { return(ALISErrorFactory.CreateError(ex.Message, Request)); } return(ALISResponseFactory.CreateResponse(Request)); }
private void bGiveFreeAbonementRight_Click(object sender, EventArgs e) { if (AllEnabled) { MessageBox.Show("Выйдите их режима редактирования! Нажмите кнопку \"Сохранить\"!"); return; } if (reader.Rights[ReaderRightsEnum.FreeAbonement] != null) { MessageBox.Show("Права бесплатного абонемента уже выданы!"); return; } if (reader.RegistrationCity == "" || reader.RegistrationStreet == "" || reader.RegistrationHouse == "" || reader.RegistrationFlat == "" || reader.MobileTelephone == "") { MessageBox.Show("Перед выдачей прав необходимо обязательно указать все поля, отмеченные звёздочкой!"); return; } TimeSpan Age = (DateTime.Now - reader.DateBirth); DateTime zeroTime = new DateTime(1, 1, 1); int Years = (zeroTime + Age).Year - 1; if (Years < 14) { MessageBox.Show("Бесплатный абонемент не выдаётся до достижения 14 летнего возраста!"); return; } reader.Rights.GiveFreeAbonementRight(); reader = ReaderInfo.GetReader(reader.NumberReader); this.Init(reader.NumberReader); MessageBox.Show("Права бесплатного абонемента успешно выданы!"); }
private void button2_Click(object sender, EventArgs e) { //f1.FrmlrFam(dataGridView1.SelectedRows[0].Cells[0].Value.ToString()); if (dataGridView1.SelectedRows.Count == 0) { MessageBox.Show("Читатель не выбран!"); return; } ReaderInfo reader = ReaderInfo.GetReader((int)dataGridView1.SelectedRows[0].Cells[0].Value); f1.FillFormular(reader); Close(); }
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 HttpResponseMessage Get(int ReaderId) { ReaderInfo reader; try { reader = ReaderInfo.GetReader(ReaderId); } catch (Exception ex) { return(ALISErrorFactory.CreateError(ex.Message, Request)); } ReaderSimpleView result = ReaderViewFactory.GetReaderSimpleView(reader); return(ALISResponseFactory.CreateResponse(result, Request)); }
public HttpResponseMessage IsBirthDateMatchReaderId() { string JSONRequest = Request.Content.ReadAsStringAsync().Result; BirthDateMatchReaderId request; try { request = JsonConvert.DeserializeObject <BirthDateMatchReaderId>(JSONRequest, ALISSettings.ALISDateFormatJSONSettings); } catch { return(ALISErrorFactory.CreateError("G001", Request)); } ReaderInfo reader; try { reader = ReaderInfo.GetReader(request.ReaderId); } catch (Exception ex) { return(ALISErrorFactory.CreateError("R004", Request)); } BooleanResponse result = new BooleanResponse(); try { result.Result = reader.IsBirthDateMatchReaderId(request); } catch (Exception ex) { return(ALISErrorFactory.CreateError(ex.Message, Request)); } return(ALISResponseFactory.CreateResponse(result, Request)); }
public static void Register(HttpConfiguration config) { //// Uncomment the following to use the documentation from XML documentation file. config.SetDocumentationProvider(new XmlDocumentationProvider(HttpContext.Current.Server.MapPath("~/App_Data/Documentation/documentation.xml"))); //// Uncomment the following to use "sample string" as the sample for all actions that have string as the body parameter or return type. //// Also, the string arrays will be used for IEnumerable<string>. The sample objects will be serialized into different media type //// formats by the available formatters. //config.SetSampleObjects(new Dictionary<Type, object> //{ // {typeof(string), "sample string"}, // {typeof(IEnumerable<string>), new string[]{"sample 1", "sample 2"}} //}); // Extend the following to provide factories for types not handled automatically (those lacking parameterless // constructors) or for which you prefer to use non-default property values. Line below provides a fallback // since automatic handling will fail and GeneratePageResult handles only a single type. #if Handle_PageResultOfT config.GetHelpPageSampleGenerator().SampleObjectFactories.Add(GeneratePageResult); #endif // Extend the following to use a preset object directly as the sample for all actions that support a media // type, regardless of the body parameter or return type. The lines below avoid display of binary content. // The BsonMediaTypeFormatter (if available) is not used to serialize the TextSample object. config.SetSampleForMediaType( new TextSample("Binary JSON content. See http://bsonspec.org for details."), new MediaTypeHeaderValue("application/bson")); //// Uncomment the following to use "[0]=foo&[1]=bar" directly as the sample for all actions that support form URL encoded format //// and have IEnumerable<string> as the body parameter or return type. //config.SetSampleForType("[0]=foo&[1]=bar", new MediaTypeHeaderValue("application/x-www-form-urlencoded"), typeof(IEnumerable<string>)); //// Uncomment the following to use "1234" directly as the request sample for media type "text/plain" on the controller named "Values" //// and action named "Put". //config.SetSampleRequest("1234", new MediaTypeHeaderValue("text/plain"), "Values", "Put"); //// Uncomment the following to use the image on "../images/aspNetHome.png" directly as the response sample for media type "image/png" //// on the controller named "Values" and action named "Get" with parameter "id". //config.SetSampleResponse(new ImageSample("../images/aspNetHome.png"), new MediaTypeHeaderValue("image/png"), "Values", "Get", "id"); //// Uncomment the following to correct the sample request when the action expects an HttpRequestMessage with ObjectContent<string>. //// The sample will be generated as if the controller named "Values" and action named "Get" were having string as the body parameter. //config.SetActualRequestType(typeof(string), "Values", "Get"); //// Uncomment the following to correct the sample response when the action returns an HttpResponseMessage with ObjectContent<string>. //// The sample will be generated as if the controller named "Values" and action named "Post" were returning a string. //config.SetActualResponseType(typeof(string), "Values", "Post"); ReaderInfo reader = ReaderInfo.GetReader(189245); //Readers.Get ReaderSimpleView rsv = ReaderViewFactory.GetReaderSimpleView(reader); string json = JsonConvert.SerializeObject(rsv, Formatting.Indented, ALISSettings.ALISDateFormatJSONSettings); config.SetSampleResponse(json, new MediaTypeHeaderValue("application/json"), "Readers", "Get"); //Readers.GetByOauthToken AccessToken token = new AccessToken(); token.TokenValue = "jhgfjfg*%&$*FKGfkfKfI^(*&^5&^TGVfjtgfdtre$E65r86T87t)(*7goYGV986T98^&Go8yg"; json = JsonConvert.SerializeObject(token, Formatting.Indented, ALISSettings.ALISDateFormatJSONSettings); config.SetSampleRequest(json, new MediaTypeHeaderValue("application/json"), "Readers", "GetByOauthToken"); json = JsonConvert.SerializeObject(rsv, Formatting.Indented, ALISSettings.ALISDateFormatJSONSettings); config.SetSampleResponse(json, new MediaTypeHeaderValue("application/json"), "Readers", "GetByOauthToken"); ////Readers.ChangePasswordLocalReader //ChangePasswordLocalReader password = new ChangePasswordLocalReader(); //password.DateBirth = "1984-02-14";// new DateTime(1984, 2, 14); //password.NewPassword = "******"; //password.NumberReader = 189245; //json = JsonConvert.SerializeObject(password, Formatting.Indented, ALISSettings.ALISDateFormatJSONSettings); //config.SetSampleRequest(json, new MediaTypeHeaderValue("application/json"), "Readers", "ChangePasswordLocalReader"); //Readers.GetLoginType LoginType ltype = new LoginType(); ltype.LoginTypeValue = "Email"; json = JsonConvert.SerializeObject(ltype, Formatting.Indented, ALISSettings.ALISDateFormatJSONSettings); config.SetSampleResponse(json, new MediaTypeHeaderValue("application/json"), "Readers", "GetLoginType"); UserLogin ul = new UserLogin(); ul.Login = "******"; json = JsonConvert.SerializeObject(ul, Formatting.Indented, ALISSettings.ALISDateFormatJSONSettings); config.SetSampleRequest(json, new MediaTypeHeaderValue("application/json"), "Readers", "GetLoginType"); //Readers.ByEmail UserEmail ue = new UserEmail(); ue.Email = "*****@*****.**"; json = JsonConvert.SerializeObject(ue, Formatting.Indented, ALISSettings.ALISDateFormatJSONSettings); config.SetSampleRequest(json, new MediaTypeHeaderValue("application/json"), "Readers", "ByEmail"); json = JsonConvert.SerializeObject(rsv, Formatting.Indented, ALISSettings.ALISDateFormatJSONSettings); config.SetSampleResponse(json, new MediaTypeHeaderValue("application/json"), "Readers", "ByEmail"); //Readers.Authorize AuthorizeInfo aut = new AuthorizeInfo(); aut.login = "******"; aut.password = "******"; json = JsonConvert.SerializeObject(aut, Formatting.Indented, ALISSettings.ALISDateFormatJSONSettings); config.SetSampleRequest(json, new MediaTypeHeaderValue("application/json"), "Readers", "Authorize"); config.SetSampleForType(aut, new MediaTypeHeaderValue("application/json"), typeof(AuthorizeInfo)); config.SetActualRequestType(typeof(AuthorizeInfo), "Readers", "Authorize"); json = JsonConvert.SerializeObject(rsv, Formatting.Indented, ALISSettings.ALISDateFormatJSONSettings); config.SetSampleResponse(json, new MediaTypeHeaderValue("application/json"), "Readers", "Authorize"); //Readers / IsBirthDateMatchReaderId BirthDateMatchReaderId match = new BirthDateMatchReaderId(); match.DateBirth = "1984-02-14"; match.ReaderId = 189245; BooleanResponse br = new BooleanResponse(); br.Result = true; json = JsonConvert.SerializeObject(match, Formatting.Indented, ALISSettings.ALISDateFormatJSONSettings); config.SetSampleRequest(json, new MediaTypeHeaderValue("application/json"), "Readers", "IsBirthDateMatchReaderId"); json = JsonConvert.SerializeObject(br, Formatting.Indented, ALISSettings.ALISDateFormatJSONSettings); config.SetSampleResponse(json, new MediaTypeHeaderValue("application/json"), "Readers", "IsBirthDateMatchReaderId"); //Readers/SetPasswordLocalReader SetPasswordLocalReader spwd = new SetPasswordLocalReader(); spwd.NewPassword = "******"; spwd.ReaderId = 189245; json = JsonConvert.SerializeObject(spwd, Formatting.Indented, ALISSettings.ALISDateFormatJSONSettings); config.SetSampleRequest(json, new MediaTypeHeaderValue("application/json"), "Readers", "SetPasswordLocalReader"); //Books.Get BookSimpleView book; book = ViewFactory.GetBookSimpleView("BJVVV_1411951"); json = JsonConvert.SerializeObject(book, Formatting.Indented, ALISSettings.ALISDateFormatJSONSettings); config.SetSampleResponse(json, new MediaTypeHeaderValue("application/json"), "Books", "Get"); //Circulation.InsertIntoUserBasket ImpersonalBasket basket = new ImpersonalBasket(); basket.BookIdArray = new List <string>(); basket.BookIdArray.AddRange(new string[] { "BJVVV_1299121", "BJVVV_1304618", "REDKOSTJ_31866", "REDKOSTJ_43090" }); basket.ReaderId = 189245; json = JsonConvert.SerializeObject(basket, Formatting.Indented, ALISSettings.ALISDateFormatJSONSettings); config.SetSampleRequest(json, new MediaTypeHeaderValue("application/json"), "Circulation", "InsertIntoUserBasket"); //Circulation.Basket CirculationInfo circ = new CirculationInfo(); List <BasketInfo> UserBasket = circ.GetBasket(888); json = JsonConvert.SerializeObject(UserBasket, Formatting.Indented, ALISSettings.ALISDateFormatJSONSettings); config.SetSampleResponse(json, new MediaTypeHeaderValue("application/json"), "Circulation", "Basket"); //Circulation.Order circ = new CirculationInfo(); MakeOrder mo = new MakeOrder(); mo.BookId = "BJVVV_1078762"; mo.ReaderId = 100000; mo.OrderTypeId = 2; json = JsonConvert.SerializeObject(mo, Formatting.Indented, ALISSettings.ALISDateFormatJSONSettings); config.SetSampleRequest(json, new MediaTypeHeaderValue("application/json"), "Circulation", "Order"); //Circulation.Orders List <OrderInfo> UserOrders = circ.GetOrders(155); json = JsonConvert.SerializeObject(UserOrders, Formatting.Indented, ALISSettings.ALISDateFormatJSONSettings); config.SetSampleResponse(json, new MediaTypeHeaderValue("application/json"), "Circulation", "Orders"); //Circulation.Basket Delete BasketDelete bd = new BasketDelete(); bd.BooksToDelete.Add("BJVVV_1299121"); bd.BooksToDelete.Add("BJVVV_1491232"); bd.ReaderId = 200500; json = JsonConvert.SerializeObject(bd, Formatting.Indented, ALISSettings.ALISDateFormatJSONSettings); config.SetSampleRequest(json, new MediaTypeHeaderValue("application/json"), "Circulation", "DeleteFromBasket"); //Circulation.OrdersHistory List <OrderHistoryInfo> UserOrdersHistory = circ.GetOrdersHistory(100000); json = JsonConvert.SerializeObject(UserOrdersHistory, Formatting.Indented, ALISSettings.ALISDateFormatJSONSettings); config.SetSampleResponse(json, new MediaTypeHeaderValue("application/json"), "Circulation", "OrdersHistory"); //Readers.PreRegisterRemoteReader PreRegisterRemoteReader re = new PreRegisterRemoteReader(); re.BirthDate = "1975-05-05";//new DateTime(1975, 05, 05); re.CountryId = 137; re.Email = "*****@*****.**"; re.FamilyName = "Иванов"; re.FatherName = "Иванович"; re.MobilePhone = "89551234567"; re.Name = "Иван"; re.Password = "******"; json = JsonConvert.SerializeObject(re, Formatting.Indented, ALISSettings.ALISDateFormatJSONSettings); config.SetSampleRequest(json, new MediaTypeHeaderValue("application/json"), "Readers", "PreRegisterRemoteReader"); //Readers.ConfirmRegistrationRemoteReader ConfirmRegistrationRemoteReader c = new ConfirmRegistrationRemoteReader(); c.Url = "https://oauth.libfl.ru/activate/<activation code>"; json = JsonConvert.SerializeObject(c, Formatting.Indented, ALISSettings.ALISDateFormatJSONSettings); config.SetSampleRequest(json, new MediaTypeHeaderValue("application/json"), "Readers", "ConfirmRegistrationRemoteReader"); //Readers.ChangePasswordByEmail ChangePasswordByEmail em = new ChangePasswordByEmail(); em.Email = "*****@*****.**"; json = JsonConvert.SerializeObject(em, Formatting.Indented, ALISSettings.ALISDateFormatJSONSettings); config.SetSampleRequest(json, new MediaTypeHeaderValue("application/json"), "Readers", "ChangePasswordByEmail"); //Readers.SetPasswordRemoteReader SetPasswordRemoteReader set = new SetPasswordRemoteReader(); set.Url = "https://oauth.libfl.ru/recovery/<recovery code>"; set.Password = "******"; json = JsonConvert.SerializeObject(set, Formatting.Indented, ALISSettings.ALISDateFormatJSONSettings); config.SetSampleRequest(json, new MediaTypeHeaderValue("application/json"), "Readers", "SetPasswordRemoteReader"); //Readers.CheckPasswordUrl CheckPasswordUrl check = new CheckPasswordUrl(); check.Url = "https://oauth.libfl.ru/recovery/<recovery code>"; json = JsonConvert.SerializeObject(check, Formatting.Indented, ALISSettings.ALISDateFormatJSONSettings); config.SetSampleRequest(json, new MediaTypeHeaderValue("application/json"), "Readers", "CheckPasswordUrl"); //GET Litres/Account/{ReaderId} LitresInfo li = new LitresInfo(); li.Login = "******"; li.Password = "******"; json = JsonConvert.SerializeObject(li, Formatting.Indented, ALISSettings.ALISDateFormatJSONSettings); config.SetSampleResponse(json, new MediaTypeHeaderValue("application/json"), "Litres", "LitresAccount"); //POST Litres/AssignAccount/{ReaderId} config.SetSampleResponse(json, new MediaTypeHeaderValue("application/json"), "Litres", "AssignLitresAccount"); //Circulation / Orders / ById /{ OrderId} OrderInfo oi = circ.GetOrder(22); json = JsonConvert.SerializeObject(oi, Formatting.Indented, ALISSettings.ALISDateFormatJSONSettings); config.SetSampleResponse(json, new MediaTypeHeaderValue("application/json"), "Circulation", "OrdersById"); //Books/ElectronicCopy/{id} ElectronicCopyFullView ec = ViewFactory.GetElectronicCopyFullView("BJVVV_138023"); json = JsonConvert.SerializeObject(ec, Formatting.Indented, ALISSettings.ALISDateFormatJSONSettings); config.SetSampleResponse(json, new MediaTypeHeaderValue("application/json"), "Books", "GetElectronicCopyFullView"); }
protected void Page_Load(object sender, EventArgs e) { string IDMAIN = Request["pin"]; string IDBASE = Request["idbase"]; string IDReader = Request.QueryString["idreader"]; if (IDReader == null) { IDReader = User.Identity.Name; //Response.Write("User.Identity.Name " + IDReader); if (IDReader == string.Empty) { Response.Write("Неизвестная ошибка"); return; } } //else //{ // Response.Write("Request" + IDReader); //} //string vkey = Request["vkey"]; string BaseName = (IDBASE == "1") ? "BJVVV" : "REDKOSTJ"; ReaderInfo readerAPI = ReaderInfo.GetReader(int.Parse(IDReader)); ExemplarLoader loader = new ExemplarLoader(BaseName); DataProviderAPI.ValueObjects.ElectronicExemplarInfoAPI exemplar = loader.GetElectronicExemplarInfo(BaseName + "_" + IDMAIN); if (exemplar.ForAllReader)//открытый БЕЗ авторского права { RedirectToNewViewer(IDMAIN, true, "", IDReader); } else //ЗАКРЫТЫЕ АВТОРСКИМ ПРАВОМ { BJBookInfo book = BJBookInfo.GetBookInfoByPIN(int.Parse(IDMAIN), BaseName); ReaderInfo reader = ReaderInfo.GetReader(int.Parse(IDReader)); if (!book.IsElectronicCopyIssued())//если книга не выдана никому, то проверяем ограничения, потом неявно выдаём и перенаправляем на вьювер { if (CheckLimitations(book, reader)) { return; } book.IssueElectronicCopyToReader(reader.NumberReader); string ViewKey = book.GetElectronicViewKeyForReader(reader.NumberReader); RedirectToNewViewer(IDMAIN, false, ViewKey, IDReader); } else { if (!book.IsElectronicCopyIsuuedToReader(reader.NumberReader))//если этому читателю не выдана эта книга, то проверяем ограничения { if (CheckLimitations(book, reader)) { return; } //если ограничения не сработали, то выдаём и перенаправляем book.IssueElectronicCopyToReader(reader.NumberReader); string ViewKey = book.GetElectronicViewKeyForReader(reader.NumberReader); RedirectToNewViewer(IDMAIN, false, ViewKey, IDReader); } else//если этому читателю выдана эта книга { string ViewKey = book.GetElectronicViewKeyForReader(reader.NumberReader); RedirectToNewViewer(IDMAIN, false, ViewKey, IDReader); } } } }
private void button1_Click(object sender, EventArgs e) { ReaderInfo r = ReaderInfo.GetReader(189245); textBox1.Text = r.FamilyName; }
private void bSave_Click(object sender, EventArgs e) { if (tbMobilePhone.Text.Length > 14) { MessageBox.Show("Поле Мобильный телефон не может содержать более 14 символов!"); return; } if (tbEmail.Text != string.Empty && !Regex.IsMatch(tbEmail.Text, @"^(?("")("".+?""@)|(([0-9a-zA-Z]((\.(?!\.))|[-!#\$%&'\*\+/=\?\^`\{\}\|~\w])*)(?<=[0-9a-zA-Z])@))" + @"(?(\[)(\[(\d{1,3}\.){3}\d{1,3}\])|(([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,6}))$")) { MessageBox.Show("Поле Email имеет неверный формат!"); return; } if (tbMobilePhone.Text == string.Empty || tbMobilePhoneCode.Text == string.Empty) { MessageBox.Show("Мобильный телефон не заполнен полностью!"); return; } if (tbMobilePhoneCode.Text.Length != 3) { MessageBox.Show("Код мобильного телефона должен содержать 3 цифры!"); return; } if (tbMobilePhone.Text.Length != 7) { MessageBox.Show("Номер мобильного телефона должен содержать 7 цифр!"); return; } if (!int.TryParse(tbMobilePhoneCode.Text, out int ParsedPhone)) { MessageBox.Show("Код мобильного телефона имеет неверный формат!"); return; } if (!int.TryParse(tbMobilePhone.Text, out ParsedPhone)) { MessageBox.Show("Код мобильного телефона имеет неверный формат!"); return; } //reader.RegistrationCountry = (int)cbCountry.SelectedValue; reader.LiveCity = tbCity.Text; reader.LiveDistrict = tbDistrict.Text; reader.LiveFlat = tbFlat.Text; reader.LiveHouse = tbHouse.Text; reader.LiveProvince = tbProvince.Text; reader.LiveRegion = tbRegion.Text; reader.LiveStreet = tbStreet.Text; reader.MobileTelephone = (tbMobilePhoneCode.Text == string.Empty) ? string.Empty : $"+7({tbMobilePhoneCode.Text}){tbMobilePhone.Text}"; reader.Email = tbEmail.Text; //reader.UpdateRegistrationFields(); reader.UpdateLiveFields(); DisableAll(); reader = ReaderInfo.GetReader(reader.NumberReader); MessageBox.Show("Регистрационные данные обновлены"); }
public void MakeOrder(MakeOrder request) { //BookBase book = new BookBase() BJBookInfo book = BJBookInfo.GetBookInfoByPIN(request.BookId); BookSimpleView bookSimpleView = ViewFactory.GetBookSimpleView(request.BookId); ReaderInfo reader = ReaderInfo.GetReader(request.ReaderId); List <int> acceptableOrderTypes = GetAcceptableOrderTypesForReader(request.BookId, request.ReaderId); if (!acceptableOrderTypes.Contains(request.OrderTypeId)) { throw new Exception("C013"); } if (request.OrderTypeId == OrderTypes.ElectronicVersion.Id) { if (this.ElectronicIssueCount(reader) >= 5) { throw new Exception("C001"); } if (this.IsElectronicIssueAlreadyIssued(reader, book)) { throw new Exception("C002"); } //в простой вид книги искусственно добавляется электронный экземпляр if (bookSimpleView.Exemplars.Count - this.GetBusyExemplarsCount(book) <= 0) { throw new Exception("C003"); } if (!this.IsTwentyFourHoursPastSinceReturn(reader, book)) { throw new Exception("C004"); } BJElectronicExemplarInfo exemplar = new BJElectronicExemplarInfo(book.ID, book.Fund); //BJExemplarInfo exemplar = BJExemplarInfo(book.ID, book.Fund); this.NewOrder(exemplar, reader, request.OrderTypeId, 30); } else { if (this.IsBookAlreadyIssuedToReader(book, reader)) { throw new Exception("C006"); } //ExemplarSimpleView exemplarSimpleView; bool IsOrderedSuccessfully = false; switch (request.OrderTypeId) { case OrderTypes.PaperVersion.Id: //приоритет для книг, которые в хранении, чтобы их принесли на кафедру для читателя foreach (BJExemplarInfo e in book.Exemplars) { if (e.Fields["899$a"].MNFIELD == 0) { continue; } if (e.ExemplarAccess.Access == 1000) { if (!this.IsExemplarIssued(e)) { this.NewOrder(e, reader, OrderTypes.PaperVersion.Id, 4); IsOrderedSuccessfully = true; break; } } } if (IsOrderedSuccessfully) { break; } //если свободных книг в хранении не осталось, то ищем те, которые в отрытом доступе. это будет самостоятельный заказ foreach (BJExemplarInfo e in book.Exemplars) { if (e.Fields["899$a"].MNFIELD == 0) { continue; } if ((e.ExemplarAccess.Access == 1006)) { if (!this.IsExemplarIssued(e)) { this.NewOrder(e, reader, OrderTypes.SelfOrder.Id, 4); IsOrderedSuccessfully = true; break; } } } if (IsOrderedSuccessfully) { break; } else { throw new Exception("C009"); } case OrderTypes.InLibrary.Id: //тут опять приоритет у тех, которые надо заказать из книгохранения перед самостоятельным заказом foreach (BJExemplarInfo e in book.Exemplars) { if (e.Fields["899$a"].MNFIELD == 0) { continue; } if ((e.ExemplarAccess.Access == 1005) || (e.ExemplarAccess.Access == 1012)) { if (!this.IsExemplarIssued(e)) { this.NewOrder(e, reader, OrderTypes.InLibrary.Id, 4); IsOrderedSuccessfully = true; break; } } } if (IsOrderedSuccessfully) { break; } //если свободных книг в хранении не осталось, то ищем те, которые в отрытом доступе. это будет самостоятельный заказ foreach (BJExemplarInfo e in book.Exemplars) { if (e.Fields["899$a"].MNFIELD == 0) { continue; } if ((e.ExemplarAccess.Access == 1007) || (e.ExemplarAccess.Access == 1014)) { if (!this.IsExemplarIssued(e)) { this.NewOrder(e, reader, OrderTypes.SelfOrder.Id, 4); IsOrderedSuccessfully = true; break; } } } if (IsOrderedSuccessfully) { break; } else { throw new Exception("C010"); } //это никогда не придёт case OrderTypes.NoActionProvided.Id: throw new Exception("C008"); case OrderTypes.ClarifyAccess.Id: throw new Exception("C008"); default: throw new Exception("C008"); } } }
private List <int> GetAcceptableOrderTypesForReader(string bookId, int readerId) { List <int> result = new List <int>(); BJBookInfo book = BJBookInfo.GetBookInfoByPIN(bookId); ReaderInfo reader = ReaderInfo.GetReader(readerId); foreach (BJExemplarInfo exemplar in book.Exemplars) { if (exemplar.Fields["929$b"].MNFIELD != 0)//списано { continue; } int AcceptableOrderType = this.GetExemplarAcceptableOrderType(exemplar); if (AcceptableOrderType == 0) { continue; } if (!result.Contains(AcceptableOrderType)) { result.Add(AcceptableOrderType); } } if (null != reader.Rights.RightsList.FirstOrDefault(x => x.ReaderRightValue == ReaderRightsEnum.Employee)) { //кароче здесь надо написать логику, если это суотрудник или оплаченный абонемент, то в зал заменить на на дом //но так как при выдаче всё равно всё встанет на свои места, то для экономи времени пропустим это. } if (reader.IsRemoteReader) { result.Remove(OrderTypes.InLibrary.Id); result.Remove(OrderTypes.PaperVersion.Id); result.Remove(OrderTypes.ClarifyAccess.Id); if (result.Count == 0) { result.Add(OrderTypes.OrderProhibited.Id); } } if (book.DigitalCopy != null) { if (book.DigitalCopy.ExemplarAccess.Access == 1002) { result.Add(3); } if (book.DigitalCopy.ExemplarAccess.Access == 1001) { result.Add(6); } } return(result.Distinct().ToList()); //{ 1000, "Заказать через личный кабинет, для получения на дом пройти в Зал абонементного обслуживания 2 этаж"}, //{ 1001, "Свободый электронный доступ"}, //{ 1002, "Доступ через авторизацию читателя(удаленного читателя)"}, //{ 1003, "Электронный доступ в электронном зале НЭБ, читальные зал(3 этаж)"}, //{ 1004, "ЛитРес:Иностранка"}, //{ 1005, "Заказать через личный кабинет, для получения заказа пройти в Зал выдачи документов 2 этаж"}, //{ 1006, "Проследовать в зал местонахождения экземпляра для получения книги на дом"}, //{ 1007, "Проследовать в зал местонахождения экземпляра, взять самостоятельно для чтения книги в помещении"}, //{ 1008, "Pearson:Иностранка"}, //{ 1009, "Печать по требованию"}, //{ 1010, "Проследовать в зал местонахождения экземпляра. Возможность выдачи уточните у сотрудника"}, //{ 1011, "Книга находится на выставке в зале местонахождения экземпляра"}, //{ 1012, "Спец.вид. Заказать через личный кабинет, проследовать в Зал выдачи документов 2 этаж. Сотрудник поможет Вам с дополнительным оборудованием для просмотра."}, //{ 1013, "Книга находится в обработке"}, //{ 1014, "Проследовать в Зал редкой книги 4 этаж"}, //{ 1016, "Проследовать в Зал редкой книги 4 этаж. Возможность доступа уточните у сотрудника."}, //{ 1017, "Проследовать в Зал выдачи документов 2 этаж. Возможность доступа уточните у сотрудника."}, //{ 1020, "Экстремистская литература.Не попадает в индекс.Обрабатывать не нужно."}, //{ 1999, "Невозможно определить доступ"}, }
public ReaderInfo GetUser(string login) { string CommandText = ""; int NumberReader = 0; bool Check = false; if (int.TryParse(login, out NumberReader)) { CommandText = "select * from Readers..Main where NumberReader = @Login"; } else if (login.Length == 19) { for (int i = 0; i < 19; i++) { if (!int.TryParse(login[i].ToString(), out NumberReader)) { Check = true; break; } } if (!Check)//значит 19 цифр. типа номер социалки вбил { CommandText = "select * from Readers..Main where NumberSC = @Login"; } } else //не номер, и не социалка, значит email { CommandText = "select * from Readers..Main where Email = @Login"; } SqlDataAdapter da = new SqlDataAdapter(); da.SelectCommand = new SqlCommand(); da.SelectCommand.Connection = new SqlConnection(ConfigurationManager.ConnectionStrings["ReadersConnection_OnlyRead"].ConnectionString); da.SelectCommand.Parameters.AddWithValue("Login", login); da.SelectCommand.CommandText = CommandText; DataSet ds = new DataSet(); int cnt = da.Fill(ds); if (cnt == 0) throw new Exception("Читатель не найден!"); if (cnt > 1) throw new Exception("Таких Email найдено больше одного! Введите номер читателя!"); ReaderInfo ri = ReaderInfo.GetReader((int)ds.Tables[0].Rows[0]["NumberReader"]); //ri.NumberReader = ds.Tables[0].Rows[0]["NumberReader"].ToString(); //ri.FamilyName = ds.Tables[0].Rows[0]["FamilyName"].ToString(); //ri.Name = ds.Tables[0].Rows[0]["Name"].ToString(); //ri.FatherName = ds.Tables[0].Rows[0]["FatherName"].ToString(); //ri.DateBirth = (DateTime)ds.Tables[0].Rows[0]["DateBirth"]; //ri.IsRemoteReader = (bool)ds.Tables[0].Rows[0]["TypeReader"]; //ri.BarCode = ds.Tables[0].Rows[0]["BarCode"].ToString(); //ri.DateRegistration = (DateTime)ds.Tables[0].Rows[0]["DateRegistration"]; //ri.DateReRegistration = (DateTime)ds.Tables[0].Rows[0]["DateReRegistration"]; //ri.Email = ds.Tables[0].Rows[0]["Email"].ToString(); //ri.HashedPassword = ds.Tables[0].Rows[0]["Password"].ToString(); //ri.MobileTelephone = ds.Tables[0].Rows[0]["MobileTelephone"].ToString(); //ri.Salt = ds.Tables[0].Rows[0]["WordReg"].ToString(); //try //{ // ri.WorkDepartment = Convert.ToInt32(ds.Tables[0].Rows[0]["WorkDepartment"]); //} //catch //{ // ri.WorkDepartment = 0; //} return ri; }
public void ShowReaderOrders() { dgwReaders.Rows.Clear(); dgwReaders.Columns.Clear(); KeyValuePair <string, string>[] columns = { new KeyValuePair <string, string> ("pin", "ПИН"), new KeyValuePair <string, string> ("author", "Автор"), new KeyValuePair <string, string> ("title", "Заглавие"), new KeyValuePair <string, string> ("inv", "Инв. номер"), new KeyValuePair <string, string> ("cipher", "Расст. шифр"), new KeyValuePair <string, string> ("readerid", "Номер читателя"), new KeyValuePair <string, string> ("fio", "ФИО читателя"), new KeyValuePair <string, string> ("startdate", "Дата формирования заказа"), new KeyValuePair <string, string> ("orderid", "orderid"), new KeyValuePair <string, string> ("status", "Статус заказа"), new KeyValuePair <string, string> ("note", "Инв. метка"), new KeyValuePair <string, string> ("pubdate", "Дата издания"), new KeyValuePair <string, string> ("refusual", "Причина отказа"), new KeyValuePair <string, string> ("iddata", "iddata") }; foreach (var c in columns) { dgwReaders.Columns.Add(c.Key, c.Value); } dgwReaders.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells; dgwReaders.RowTemplate.DefaultCellStyle.WrapMode = System.Windows.Forms.DataGridViewTriState.True; dgwReaders.Columns["startdate"].DefaultCellStyle.Format = "dd.MM.yyyy HH:mm"; dgwReaders.Columns["pin"].Width = 74; dgwReaders.Columns["author"].Width = 125; dgwReaders.Columns["title"].Width = 265; dgwReaders.Columns["inv"].Width = 80; dgwReaders.Columns["cipher"].Width = 100; dgwReaders.Columns["readerid"].Width = 80; dgwReaders.Columns["fio"].Width = 120; dgwReaders.Columns["startdate"].Width = 80; dgwReaders.Columns["orderid"].Visible = false; dgwReaders.Columns["status"].Width = 100; dgwReaders.Columns["note"].Width = 60; dgwReaders.Columns["pubdate"].Visible = false; dgwReaders.Columns["iddata"].Visible = false; CirculationInfo circulation = new CirculationInfo(); List <OrderInfo> orders = circulation.GetOrdersForStorage(bjUser.SelectedUserStatus.DepId, bjUser.SelectedUserStatus.DepName, CirculationStatuses.EmployeeLookingForBook.Value); if (bjUser.SelectedUserStatus.DepId == 8)//0 и 4 этаж должны получать заказы в одну точку { List <OrderInfo> orders1 = circulation.GetOrdersForStorage(15, "…Хран… Сектор книгохранения - 0 этаж"); foreach (OrderInfo o in orders1) { orders.Add(o); } } if (bjUser.SelectedUserStatus.DepId == 15) { List <OrderInfo> orders1 = circulation.GetOrdersForStorage(8, "…Хран… Сектор книгохранения - 4 этаж"); foreach (OrderInfo o in orders1) { orders.Add(o); } } foreach (var order in orders) { BJExemplarInfo exemplar = BJExemplarInfo.GetExemplarByIdData(order.ExemplarId, order.Fund); ReaderInfo reader = ReaderInfo.GetReader(order.ReaderId); dgwReaders.Rows.Add(); var row = dgwReaders.Rows[dgwReaders.Rows.Count - 1]; row.Cells["startdate"].Value = order.StartDate; row.Cells["pin"].Value = order.BookId.Substring(order.BookId.IndexOf("_") + 1); row.Cells["author"].Value = order.Book.Author; row.Cells["title"].Value = order.Book.Title; row.Cells["inv"].Value = exemplar.Fields["899$p"].ToString(); row.Cells["cipher"].Value = exemplar.Cipher; row.Cells["readerid"].Value = order.ReaderId; row.Cells["fio"].Value = (string.IsNullOrEmpty(reader.FatherName)) ? $"{reader.FamilyName} {reader.Name.Substring(0, 1)}." : $"{reader.FamilyName} {reader.Name.Substring(0, 1)}. { reader.FatherName.Substring(0, 1)}."; row.Cells["orderid"].Value = order.OrderId; row.Cells["status"].Value = order.StatusName; row.Cells["note"].Value = exemplar.Fields["899$x"].ToString(); row.Cells["pubdate"].Value = order.Book.PublishDate; row.Cells["iddata"].Value = order.ExemplarId; row.Cells["refusual"].Value = string.IsNullOrEmpty(order.Refusual) ? "<нет>" : order.Refusual; } }