예제 #1
0
 private bool CheckLimitations(BJBookInfo book, ReaderInfo reader)
 {
     if (reader.IsFiveElBooksIssued())
     {
         Panel1.Visible         = true;
         Label1.Text            = "Нельзя взять более пяти электронных книг. Сдайте в личном кабинете любую электронную книгу и попробуйте снова.";
         HyperLink1.NavigateUrl = @"https://catalog.libfl.ru/Record/" + book.Fund + "_" + book.ID;
         return(true);
     }
     if (book.Exemplars.Count - book.GetBusyElectronicExemplarCount() <= 0)
     {
         if ((book.Exemplars.Count == 0) && (book.IsExistsDigitalCopy))
         {
             //если сюда попали, то значит есть только электронная копия. текущий код выдаёт сколько хочешь раз. как надо пока непонятно
             return(false);
         }
         Panel1.Visible = true;
         Label1.Text    = "Все экземпляры выданы. Нельзя выдать электронных экземпляров больше чем бумажных, так как это нарушит авторское право." +
                          " Ближайшая свободная дата " + book.GetNearestFreeDateForElectronicIssue().ToString("dd.MM.yyyy") + ". Попробуйте заказать в указанную дату.";
         HyperLink1.NavigateUrl = @"https://catalog.libfl.ru/Record/" + book.Fund + "_" + book.ID;
         return(true);
     }
     if (!book.IsOneDayPastAfterReturn(reader.NumberReader))
     {
         Panel1.Visible         = true;
         Label1.Text            = "Вы не можете заказать эту электронную копию, поскольку запрещено заказывать ту же копию, если не прошли сутки с момента её возврата. Попробуйте на следующий день.";
         HyperLink1.NavigateUrl = @"https://catalog.libfl.ru/Record/" + book.Fund + "_" + book.ID;
         return(true);
     }
     return(false);
 }