예제 #1
0
    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);
                }
            }
        }
    }